получить хэш-ключ и значение из другого скрипта - PullRequest
1 голос
/ 08 марта 2011

Привет всем, у меня есть модуль с подпрограммой, которая получает параметры из, например, script.pl. В script.pl я вызываю функцию следующим образом: moduleName :: sunName (\% hashref).
Теперь в модуле и вПод телом я хочу распечатать те параметры, которые прошли.также я хочу проверить, является ли значение каждого ключа этого href пустым print '-' вместо 0. первая часть модуля:

sub printOptions {

   my $opt = shift;
   # I have this
   print $opt->{'id'};
   # But I need all parameters!
 }

спасибо

Ответы [ 2 ]

2 голосов
/ 08 марта 2011

Попробуйте:

sub printOptions {
  my $opt = shift @_;

  for my $key ( sort keys %$opt ){
    if( defined( $opt->{$key} )){
      print "$key: $opt->{$key}\n";
    }else{
      print "$key: undef\n";
    }
  }
}
2 голосов
/ 08 марта 2011

Мэтт, что ты получаешь в данный момент?Для разыменования ссылки $ opt вы можете сделать

%opt = %{ $opt }

Для перебора ключей вы можете затем сделать

for my $key ( sort keys %opt ) {
    print "$key: " . ($opt{ $key } || '-') . "\n";
}
...