Выполнение команд, содержащихся в строке

С помощью функции evai о можно выполнить строку как Perl-код:
#!/usr/bin/perl -w
# Выводим все сообщения об ошибках
# в окно Web-браузера
use CGI::Carp qw(fatalsToBrowser); print "Content-type: text/html\n\n";
my ($str, $strl, $str2, $str3, $str4, $str5); $strl=$str2=$str3=$str4=$str5="npnBeT"; for (my $i=l; $i<6; $i++) {
$str = "$str" . $i . 1 = "Строка* . $i . ,";1; eval($str);
}
print "$strl<BR>"; print "$str2<BR>"; print "$str3<BR>"; print "$str4<BR>"; print "$str5<BR>";
Вывод:
Строка1 Строка2 СтрокаЗ Строка4 Строка5
Если в строке содержатся ошибки, то их описание сохраняется в специальной переменной $@. Если ошибок не возникло, то переменная содержит пустую строку. В качестве примера создадим код с ошибкой и выведем описание ошибки:
#!/usr/bin/perl -w
# Выводим все сообщения об ошибках
# в окно Web-браузера
use CGI::Carp qw(fatalsToBrowser); print "Content-type: text/html\n\n"-;
my $str = "prinnt "Hello, world";"; eval($str) ;
print $@ if (defined($@)) ;
$str = "print "<BR>Hello, world";"; eval($str);
print $@ if (defined($@));
Вывод:
syntax error at (eval 2) line 1, near "prinnt "Hello, world""
Hello, world


Страница: 1 | 2


Web сайты на Perl и MySql