Почему?

Dec 19, 2008 11:30


Что-то не могу понять, почему 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 написано об этом

недоумение, программизм, perl

Previous post Next post
Up