URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4044
[ Назад ]

Исходное сообщение
"извлеч строку из массива и полместить ее в три переменные"

Отправлено gexa , 09-Мрт-05 09:36 
Есть строка @date :
print "@date\n"; # 2005 3 8
Как сделать чтобы в переменной $y было 2005, $m=3, $d=3 ?
пробовал так:
my ($y, $m, $d) = split (/ /,@date);
print "$y $m $d"; # вижу 3   :(
Помогите плиз.

Содержание

Сообщения в этом обсуждении
"извлеч строку из массива и полместить ее в три переменные"
Отправлено allez , 09-Мрт-05 09:56 
А если присвоить переменным значения элементов массива?

my $y = $date[0];
my $m = $date[1];
my $d = $date[2];


"извлеч строку из массива и полместить ее в три переменные"
Отправлено gexa , 09-Мрт-05 09:59 
>А если присвоить переменным значения элементов массива?
>
>my $y = $date[0];
>my $m = $date[1];
>my $d = $date[2];


Огромное спасибо!


"извлеч строку из массива и полместить ее в три переменные"
Отправлено mthawk , 17-Мрт-05 11:20 
>Есть строка @date :
>print "@date\n"; # 2005 3 8
>Как сделать чтобы в переменной $y было 2005, $m=3, $d=3 ?
>пробовал так:
> my ($y, $m, $d) = split (/ /,@date);
>print "$y $m $d"; # вижу 3   :(
>Помогите плиз.


функция split применяется к строкам. для упаковки списков ее применять не нужно.
пусть @date =(2005 3 8)
тогда
($y,$m,$d)=@date;

а вот если у тебя будет $date='2005 3 8' - тогда нужна функция split


"извлеч строку из массива и полместить ее в три переменные"
Отправлено ACCA , 19-Мрт-05 00:10 
Мелкое уточнение:

>пусть @date =(2005 3 8)

@date = (2005,3,8);
или
@date = qw(2005 3 8);


"извлеч строку из массива и полместить ее в три переменные"
Отправлено mthawk , 20-Мрт-05 11:37 
>Мелкое уточнение:
>
>>пусть @date =(2005 3 8)
>
>@date = (2005,3,8);
>или
>@date = qw(2005 3 8);

справедливо :) проглядел.