Попытка ввода отформатированного текстового файла и избавление от всех пробелов в дополнение к выводу каждого слова в отдельной строке в perl - PullRequest
0 голосов
/ 07 апреля 2020
#!/usr/bin/perl
use strict;
use warnings;

open (my $inFile, '<', 'electricity.txt') or die $!;

while (<$inFile>) {
  chomp $_;
  $_ = split(/\s+/);
  print $_;
}
close ($inFile);

Когда я запускаю это, я получаю кучу числовых c значений в качестве вывода. Я не уверен почему.

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020

Я так и сделал ...

#!/usr/bin/perl
use strict;
use warnings;



open (my $inFile, '<', 'electricity.txt') or die $!;

while (my $lines = <$inFile>) {

  chomp $lines;
    $lines =~ s/\s+/\n/g;
  print $lines;

  foreach my $line (split /\s+/, $lines) {
        $count{$line}++;
    }



}
close ($inFile);
0 голосов
/ 07 апреля 2020

В своем коде ответа вы забыли объявить переменную %count ha sh. Следовательно, вы обязательно получите ошибку компиляции при загрузке вашего кода. Просто я проверю, как я могу получить ответ на ваш вопрос.

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my %count = ();

my @text = split /\s+/,  do { local $/; <DATA> };

$count{$_}++ for(@text);

print Dumper \%count;
print join "\n", @text;

Я получу вывод из приведенного выше кода. Мой вопрос, как я могу объединить две строки кодов в одну строку. Кто-нибудь, пожалуйста, совет. Я пытался, но не смог получить вывод.

__DATA__
We study six natural decompositions of mixed states in one spatial dimension:
0 голосов
/ 07 апреля 2020

Возможно, вы намеревались написать следующее

#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

open my $inFile, '<', 'electricity.txt' 
    or die $!;

while( <$inFile> ) {
  chomp;
  say for split;
}

close ($inFile);

ПРИМЕЧАНИЕ: $ _ не предназначено для назначения, split в списке контекст возвращает список / массив элементов, в противном случае он возвращает размер списка / массива

ПРИМЕЧАНИЕ: split и split ' ' - это особый случай для split /\s+/

TutorialPoint: Perl - Специальные переменные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...