2013-05-28 4 views
1

Я написал небольшой тестовый скрипт.Аргумент Perl, передаваемый функции

#!/usr/bin/perl -w 

use strict; 

my $head="a b"; 

sub test 
{ 
my @arr=split//,@_; 
print $arr[0]; 
} 

test $head; 

выход 1 вместо я действительно ожидал a. Может кто-нибудь сказать мне, где я неправильно

ответ

8

Операндов split оцениваются в скалярном контексте и @_ в скалярном контексте вычисляет количество элементов в @_ (1). Вы хотите

sub test { 
    my @arr = split//, $_[0]; 
    print $arr[0]; 
} 
Смежные вопросы