Forum Webscript.Ru
		Программирование => Perl => Тема начата: DartSidius от 21 Октября 2010, 15:13:29
		
			
			- 
				Требуется передать в функцию строковую переменную и хэш
 
 делаю так
 
 Func($string,%hash);
 
 
 sub Func {
 my ($str,%h) = @_;
 }
 
 Странно то, что в переданый %h попадает и значение $str...
- 
				#!/usr/bin/perl -wT
 
 use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
 
 print "Content-type: text/html\\n\\n";
 
 $aaa = "blabla";
 
 $bbb{\'qwe\'} = "qqq123";
 $bbb{\'asd\'} = "aaa456";
 
 
 &test($aaa,%bbb);
 
 
 
 sub test() {
 
 my ($str,%h) = @_;
 
 print "\\$str = $str
 \\n";
 
 foreach $temp (keys %h) {
 print "\\$h{$temp} = $h{$temp}
 \\n";
 }
 
 }
 
 выводит
 
 $str = blabla
 $h{asd} = aaa456
 $h{qwe} = qqq123
 
 хз даже почему у вас такой результат
- 
				смотря как вызывать...
			
- 
				Функция находится в отдельном фале Hash.pm
 
 Вызывается так $result = Hash::Func($str,%hash);