Как дать строку в качестве входных данных, чтобы вырезать команду в Perl - PullRequest
3 голосов
/ 23 сентября 2011

У меня есть строка скажем my $str = "Hello Hi Bye", и я хочу предоставить эту строку, чтобы вырезать команду получить поля.Может кто-нибудь, пожалуйста, помогите мне, как это сделать?

А что по этому поводу?Я на самом деле пытался сделать так ... У меня есть массив:

my @str = ("hello hi bye","hello hi you","abc def ghi","abc def jkl");

Я хочу предоставить этот массив, чтобы вырезать первые два поля и получить уникальное среди них,Например, выходные данные должны быть "hello hi" и "abc def" и получить количество таких уникальных комбинаций этих двух полей, здесь оно равно 2 ..

Ответы [ 2 ]

4 голосов
/ 23 сентября 2011

Раскол

use warnings;
use strict;

my $str = "Hello Hi Bye";
my @fields = split /\s+/, $str;

ОБНОВЛЕНИЕ: Чтобы ответить на ваш новый вопрос ... всякий раз, когда вы хотите "уникальный", подумайте "хэш":

use warnings;
use strict;
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;

my %count;
my @str = ("hello hi bye","hello hi you","abc def ghi","abc def jkl"); 
for (@str) {
    my @flds = (split)[0..1];
    $count{"@flds"}++;
}
print Dumper(\%count);

__END__

$VAR1 = {
          'abc def' => 2,
          'hello hi' => 2
        };
1 голос
/ 23 сентября 2011

Попробуйте использовать функцию split :

my $str = "Hello Hi Bye";
my @fields = split(/\s+/, $str); # => ('Hello', 'Hi', 'Bye')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...