Приоритеты операторов в Perl
15.05.2009
Отлаживая один скрипт, в очередной раз напоролся на банальные грабли, иллюстрирующие красоту и мощь языка Perl.
Сначала был примерно такой код:
while(<STDIN>)
{
if(($name) = $_ =~ /^\s*source (.*)\.sql/i)
{
if (&function $name)
{
# do something with $name
}
}
}
Логично было бы объединить два условия в одно:
while(<STDIN>)
{
if(($name) = $_ =~ /^\s*source (.*)\.sql/i && &function $name)
{
# do something with $name
}
}
Но после этого условие стало выполняться для каждой строки STDIN, [...]