LINUX.ORG.RU

Помогите со скриптом PL


0

0

Нашел в инете скриптик для самбы. Но при запуске он выдает:

Global symbol "%map_ref" requires explicit package name at ./checkmap.pl line 67. Execution of ./checkmap.pl aborted due to compilation errors.

Вот текст скрипта:

#!/usr/bin/perl -w

# checkmap.pl

# v1.01

use strict;

use vars qw/$path2net %groupmap %realmap %group/;

$path2net = '/usr/bin/net';

%groupmap = (

'Domain Guests' => 'Guests',

);

get_groupmap(\%realmap) or exit(1);

----skip-----

}

exit(0);

sub get_groupmap{

my $map_ref = shift;

unless (open(NET,"$path2net groupmap list|")){

warn "Couldn't read path2net: $!\n";

return 0;

}

my @map = <NET>;

close(NET);

map { chomp; /(^.+?)\s\(.+?\)\s-\>\s(.*)/; $map_ref->{$1} = $2

unless exists($map_ref{$1}) } @map;

return 1;

}

Вот на эту функцию а точнее на это выражение он ругается: map { chomp; /(^.+?)\s\(.+?\)\s-\>\s(.*)/; $map_ref->{$1} = $2.

Подскажите как пофиксить, я в ПЛ полный профан.... что нужно подправить?

anonymous

Замени
unless exists($map_ref{$1}) } @map;
на
unless exists($map_ref->{$1}) } @map;

Это правда не означает, что скрипт будет работать.
То, что ты запостил вообще скриптом назвать нельзя - каша какая-то.

HTH

Onanim
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.