|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vladimir Podgorny 2:5020/400 16 Jul 2002 10:50:09 To : Vladislav A. Shugarov Subject : Re: Помогите -------------------------------------------------------------------------------- Vladislav A. Shugarov <vlad@ineco.ryazan.su> wrote: > > Привет Всем! Помогите! > такая проблема: > есть массив @calendar = 1 2 и т.д 31 (состоит из перечня календарных дней) > > $holiday = <STDIN>; - сюда попадает например 1,3-9,15-22,25 > chomp ($holiday); > $holiday =~ s/-+/x..x/g; или $holiday =~ s/-+/x.x.x/g; > $holiday =~ s/,+/x,x/g; > @holiday = split (/x/,$holiday1); > @holiday1 = @calendar[@holiday]; и в этом месте в @holiday1 попадает > только 1 3 9 15 22 25, а знаки "," и "." или ".." не понимает. > Вопрос: можно ли так вообще делать, если можно, то чего не > хватает или работать в другом направлении и в каком ?? > > В идеале @holiday1 = @calendar[1,3..9,15..22,25]; По большому счету тебе нужно вот это: ^^^^^^^^^^^^^^^^ А оно получается таким образом: [raven@t-rex - 09:48:03 Tue Jul 16 /tmp] $ cat test.pl #!/usr/bin/perl -wT use strict; use warnings; my $hd = '1,3-9,15-22,25'; $hd =~ s/-/../g; my @array = @{(eval "[$hd]")[0]}; print join ' ', @array, "\n"; [raven@t-rex - 09:48:04 Tue Jul 16 /tmp] $ ./test.pl 1 3 4 5 6 7 8 9 15 16 17 18 19 20 21 22 25 [raven@t-rex - 09:48:05 Tue Jul 16 /tmp] $ > ---------------------------- > Vladislav A. Shugarov > e-mail: vlad@ineco.ryazan.su > > -- VP992-RIPE --- ifmail v.2.15dev5 * Origin: Adamant ISP news server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/12034a3b7805f.html, оценка из 5, голосов 10
|