내가 입력 파일과 같습니다 (input.txt를)에서 출력으로 단어 유형을 얻기 위해 노력하고는,펄 프로그램은
입력 파일을 출력으로 단어 유형을 얻을 수
John N N
loved V
Mary N N
. S
He N
was V
eating V
in P P
a A A
restaurant N
. S
The A A
cats N N
killed V
the A A
rats N N
. S
I N
am V
playing V
. S
입력 파일에는 세 개의 열이 있습니다. 첫 번째 열은 단어이고 다음 두 열은 단어 유형입니다. 모든 열은 탭으로 구분되며 사이에 빈 줄이 있습니다. 프로그램의 목적은 "ing", "ed"및 "s"와 같은 단어 끝을 일치시키고 네 번째 열에 단어 유형을 인쇄하는 것입니다. 예상 출력이 예상 출력
될 것
John N N
loved V V
Mary N N
. S
He N
was V
eating V V
in P P
a A A
restaurant N
. S
The A A
cats N N N
killed V V
the A A
rats N N N
. S
I N
am V
playing V V
. S
내가 이것이다 사용하고 코드,
!/usr/bin/perl
use warnings;
use strict;
open my $fh, '<' , 'input.txt' or die $!;
while (<$fh>) {
chomp ;
print $_;
if (/ing\s*$/ or /ed\s*$/) {
print ' V';
}
if (/s\s*$/) {
print ' N';
}
print "\n";
}
close($fh);
그러나 내가 입력 파일 자체를 얻고으로 내가 뭔가 잘못하고있는 중이 야 생각 출력으로. 제발 좀 도와주세요. 미리 감사드립니다.
'ing'또는 'ed'는 줄의 끝에 있지 않고 첫 단어의 끝에 있으므로'/^\ w * ing \ s /'와'/^승 * ed \ s /'어쩌면 그 일을 할 것 인가? – Dada
@Dada 답장을 보내 주셔서 감사합니다. 그러나 그것은 도움이되지 않았습니다.나는 해시에 단어의 첫 번째 열을 저장하고 그들을 특히 단어 결말과 비교하려고 노력해야한다고 생각한다. 그게 효과가 있는지 확실하지 않습니다. – Nandini143
@Dada 귀하의 제안은 정상적으로 작동합니다. OP 스크립트에서'/...$/ '문제를 정확하게 발견했습니다. – PerlDuck