Что-то не могу понять, почему sprintf @_ возвращает не строку, а число элементов в списке, словно это и не sprintf, а какой-нибудь scalar. Странно!
Тестовый скрипт:
#!/usr/bin/perl -w
use strict;
print
f0("0. Empty: %s\n", ''),
f0("0. Full: %s\n", 'Many'),
f1("1. Empty: %s\n", ''),
f1("1. Full: %s\n", 'Many');
sub f0 {
my $first = shift;
my $second = shift;
return ($second) ? sprintf $first, $second, @_ : '';
}
sub f1 {
return ($_[1]) ? sprintf @_ : '';
}
upd/19.12.2008: вопрос снят, оказывается в
perldoc -f sprintf написано об этом