gpt4 book ai didi

perl - 不明白为什么 perl 先打印换行符,然后打印数据,而不是相反

转载 作者:行者123 更新时间:2023-12-02 21:56:09 27 4
gpt4 key购买 nike

嗯,我的代码非常简单。它应该打印内容 +\n 但结果以某种方式相反。

这里是代码:

#!/usr/bin/perl -w 

use strict;

my $founds;

while (<>){
$$founds{$2} = $& while m/([A-Z]{3})([a-z])([A-Z] {3})/g;
}

print sort keys %$founds, "\n";

结果是:

(here is a newline)  
abcdefghijklmnopqrstuvwxyz

希望您的配置也会发生这种情况(如果您想下载我在代码中使用的文件 go here )

无论如何,你知道一些事情吗?

P.S:正则表达式不允许换行符,因此问题不太可能出在它身上。

最佳答案

首先得到换行符的原因是由于缺少括号而将其包含在排序中。改为这样做:

print sort(keys %{$founds}), "\n";

换行符首先出现纯属巧合(或者更确切地说,是由于它是非空白字符中的空白字符)。

澄清:

my %found = ( foo => 1, bar => 1 );   # keys returns "foo", "bar"
print sort keys %found, "\n"; # sort gets "foo", "bar", "\n"
# ^^^^^^^^^^^^^^^^^----------- arguments to sort()

关于perl - 不明白为什么 perl 先打印换行符,然后打印数据,而不是相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17778011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com