Size: a a a

2020 June 12

IC

Ilya Chesnokov in Modern::Perl
Не знал)
источник

SZ

Sergey Zhmylove in Modern::Perl
А в зависимости от контекста - ещё и разворачивает его
источник

SZ

Sergey Zhmylove in Modern::Perl
Как вот тут, в скалярном
источник

SZ

Sergey Zhmylove in Modern::Perl
А в списочном не стал бы
источник

IC

Ilya Chesnokov in Modern::Perl
👍
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
покажи
Тебе нужно либо это:
my (undef, undef, @provides) = map { split /\s+/ } grep /# PROVIDE: /, @rcbody);

Либо это:
my @provides = map { do { my $i = 0; grep { $i++ >= 2 } split /\s+/ } } grep /# PROVIDE: /, @rcbody);
источник

IB

Ivan Bessarabov in Modern::Perl
@PerlBanjoBot

use Data::Dumper;

## скаляр
my $str = 'Hello';
my $result = reverse $str;

warn Dumper $result;

## массив
my @arr = ('one', 'two');
my @result = reverse @arr;

warn Dumper \@result;
источник

P

PerlBanjoBot in Modern::Perl
Ivan Bessarabov
@PerlBanjoBot

use Data::Dumper;

## скаляр
my $str = 'Hello';
my $result = reverse $str;

warn Dumper $result;

## массив
my @arr = ('one', 'two');
my @result = reverse @arr;

warn Dumper \@result;
$VAR1 = 'olleH';
$VAR1 = [
         'two',
         'one'
       ];
https://PerlBanjo.com/75961b5354
источник

IB

Ivan Bessarabov in Modern::Perl
Но ты, конечно, совершенно прав.
источник

SZ

Sergey Zhmylove in Modern::Perl
Ivan Bessarabov
@PerlBanjoBot

use Data::Dumper;

## скаляр
my $str = 'Hello';
my $result = reverse $str;

warn Dumper $result;

## массив
my @arr = ('one', 'two');
my @result = reverse @arr;

warn Dumper \@result;
Ну путай контекст и аргументы!
источник

SZ

Sergey Zhmylove in Modern::Perl
@PerlBanjoBot

use Data::Dumper;

## скаляр
my $str = 'Hello';
my @result = reverse $str;

warn Dumper \@result;

## массив
my @arr = ('one', 'two');
my $result = reverse @arr;

warn Dumper \$result;
источник

P

PerlBanjoBot in Modern::Perl
Sergey Zhmylove
@PerlBanjoBot

use Data::Dumper;

## скаляр
my $str = 'Hello';
my @result = reverse $str;

warn Dumper \@result;

## массив
my @arr = ('one', 'two');
my $result = reverse @arr;

warn Dumper \$result;
$VAR1 = [
         'Hello'
       ];
$VAR1 = \'owteno';
https://PerlBanjo.com/ad789798e9
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
Тебе нужно либо это:
my (undef, undef, @provides) = map { split /\s+/ } grep /# PROVIDE: /, @rcbody);

Либо это:
my @provides = map { do { my $i = 0; grep { $i++ >= 2 } split /\s+/ } } grep /# PROVIDE: /, @rcbody);
да уж, sub cdrcdr короче :)
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
да уж, sub cdrcdr короче :)
++
источник

SZ

Sergey Zhmylove in Modern::Perl
Vadim Goncharov
да уж, sub cdrcdr короче :)
Если в каждой строке PROVIDE надо убрать первые два слова, то да :)
источник

SZ

Sergey Zhmylove in Modern::Perl
Хотя в твоём частном случае можно ещё и substr жахнуть
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
Если в каждой строке PROVIDE надо убрать первые два слова, то да :)
ну можно было бы еще тупо вырезать регэкспом
источник

VG

Vadim Goncharov in Modern::Perl
Sergey Zhmylove
Хотя в твоём частном случае можно ещё и substr жахнуть
не, у меня их 4 штуки отличающейся длины https://t.me/freebsd_ru/155219
источник

SZ

Sergey Zhmylove in Modern::Perl
Таки да. Либо внутри map сунуть в (undef, undef, @arr) и вернуть его из map
источник
2020 June 13

SZ

Sergey Zhmylove in Modern::Perl
@nuclight я тут все думал, как же это красивее сделать.
Смотри, вот тут ты используешь @body только четыре раза и как раз для того страшного split.
В результате, если файлов много, то ты сильно затормаживаешь обработку.
А ведь можно по классике, в один проход по каждому файлу.
while(defined($_ = <$fh>)) {
chomp;
...
}
источник