Ловушки Perl
Истории-страшилки про Perl-программиста, с подсказками и разоблачениями
Главная
О блоге
Об авторах
Почему?
rss
@perltrapcom
При отладке предыдущего тестового скрипта (http://perltrap.com/http-demonyonok) программист добавил вывод url’а, по которому можно обратиться к свежезапущенному http-серверу:
Но вот ведь незадача…
Скрипт не печатал нормлаьный url.
А печатал вот такую ерунду:
Please contact me at: <URL: HTTP::Daemon=GLOB(0x22cf3e0)->url >
Perl’овая интерполяция в строках – это так удобно!
Интерполяция (подстановка) переменных – безусловно, очень удобное свойство строк. Но! Интерполируются только переменные, но не вызовы методов. Так что код стоило бы исправить так:
# perl http_daemon.pl 10046 my $d = HTTP::Daemon->new(LocalPort => $ARGV[0]||8080) or die; -print "Please contact me at: <URL: $d->url >\n"; +print "Please contact me at: <URL: ".$d->url." >\n"; while (my $c = $d->accept) {