我正在尝试解决一个问题,即希望从文件中显示给定文本,省略特殊字符并将多行输入修改为仅使用 Perl/Regex 语言(没有其他语言,如 XML,等等。)。这是我的flight.txt文件中的给定文本:
<start>
<flight number="12345">
<pilot> Holland, Tom</pilot>
<major>Aeronautics Engineer</major>
<company>Boeing</company>
<price>200</price>
<date>06-09-1969</date>
<details>Flight from DC to VA.</details>
</flight>
</start>
Run Code Online (Sandbox Code Playgroud)
所需的输出是:
Holland, T. "Aeronautics Engineer" 200 06/09/1969 Flight from DC to VA.
Run Code Online (Sandbox Code Playgroud)
如您所见,我需要一行输出;并且名字应该是第一个首字母,而输出也主要应该在“”中,而输出和日期格式应该从 更改-为/。
到目前为止,这是我在代码中的内容:
#!/bin/perl
use strict;
use warnings;
my $filename = "flights.txt"
open(my $input, '<:encoding(UTF-8)', $filename)
or die "Could not open file '$filename' $!";
while (my $row = <$input>){
my $text = <>;
$text =~ s/<[^>]*>//g;
print $text;
}
close …Run Code Online (Sandbox Code Playgroud)