есть список файлов <имя>.<середина>.<окончание>
допустим он хранится в @my_list
Нужно получить список имён @my_names тех файлов, у которых середина=test, то есть то, что идёт у них до первой точки.
Что-то типа:
#!/usr/bin/perl -w
.....
.....
for( my $i = 0; $i < scalar( @my_list ); $i++ ) {
if( $my_list[$i] =~ /test/ ) {
push @my_names, <?чего-то_там?>
}
}
.....
Подскажите, пожалуйста, что там вписать?
Или предложите другой способ.
my @test_names;
foreach my $fh (@my_names){
if ($fh =~ /^(\w+)\.test\.\w+$/){
push @test_names,$1;
}
}>есть список файлов <имя>.<середина>.<окончание>
>допустим он хранится в @my_list
>Нужно получить список имён @my_names тех файлов, у которых середина=test, то есть
>то, что идёт у них до первой точки.
>Что-то типа:
>#!/usr/bin/perl -w
>.....
>.....
>for( my $i = 0; $i < scalar( @my_list ); $i++ )
>{
> if( $my_list[$i] =~ /test/ ) {
> push @my_names, <?чего-то_там?>
> }
> }
>.....
>Подскажите, пожалуйста, что там вписать?
>Или предложите другой способ.
>my @test_names;
>foreach my $fh (@my_names){
> if ($fh =~ /^(\w+)\.test\.\w+$/){
> push @test_names,$1;
> }
>}
>
>>есть список файлов <имя>.<середина>.<окончание>
>>допустим он хранится в @my_list
>>Нужно получить список имён @my_names тех файлов, у которых середина=test, то есть
>>то, что идёт у них до первой точки.
>>Что-то типа:
>>#!/usr/bin/perl -w
>>.....
>>.....
>>for( my $i = 0; $i < scalar( @my_list ); $i++ )
>>{
>> if( $my_list[$i] =~ /test/ ) {
>> push @my_names, <?чего-то_там?>
>> }
>> }
>>.....
>>Подскажите, пожалуйста, что там вписать?
>>Или предложите другой способ.Спасибо.
НУ на примере объясню. файл например имеет имя good.test.txt, загоняем все файлы в массив через opendir, readdir, затем по массиву организуем поиск, например такой:$string="good.test.txt";# для примера в твоем случае это будет один из элементов массива
$string=~/(\w+)\.(\w+)\.(\w+)/;
print "Начало: $1\nСередина: $2\nКонец: $3\n";
ну а эти данные вы можете уже засунуть куда угодно. Сверив середину со словом test.
>НУ на примере объясню. файл например имеет имя good.test.txt, загоняем все файлы
>в массив через opendir, readdir, затем по массиву организуем поиск, например
>такой:
>
>$string="good.test.txt";# для примера в твоем случае это будет один из элементов массива
>
>
>$string=~/(\w+)\.(\w+)\.(\w+)/;
>
>print "Начало: $1\nСередина: $2\nКонец: $3\n";
>
>ну а эти данные вы можете уже засунуть куда угодно. Сверив середину
>со словом test.Понятное дело, просто никак не могу запомнить что означают эти символы в / . . . /
>
>Понятное дело, просто никак не могу запомнить что означают эти символы в
> / . . . /Все просто, каждая из переменных $1 и до бесконечности (да да - в отличии от джавы, где возможно только от 1 до 9), автоматически получает в качестве значения часть строки, которая совпала с шаблоном заключенным в скобки.
То есть, обратите внимание на мой пример, в нем 3 пары круглых скобок с шаблонами внутри, и переменных $1,$2,$3 - тоже три, если бы у нас было 4 паря скобок, то можно было бы использовать $4, и так даллее.