小编Jef*_*eff的帖子

打印输出到屏幕与输出到文件不同

使用print运算符将键/值数组写入外部 javascript 文件会生成与打印到屏幕不同的输出,尽管我尽了最大努力,但我无法弄清楚原因。具体来说,当打印到屏幕时,正如预期的那样,我的 Perl 脚本输出:

var genusSpecies={"Adam's Needle (Yucca filamentosa)":["Adam's Needle (Yucca filamentosa)1.jpg","._Adam's Needle (Yucca filamentosa)2.jpg"...
Run Code Online (Sandbox Code Playgroud)

然而,当打印到外部 JavaScript 文件时,点下划线._被错误地添加到数组的键和值中,输出:

var genusSpecies={"._Adam's Needle (Yucca filamentosa)":["._Adam's Needle (Yucca filamentosa)1.jpg","._Adam's Needle (Yucca filamentosa)2.jpg"...
Run Code Online (Sandbox Code Playgroud)

这是我的 Perl 脚本:

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

use JSON::PP;

use English;  ## use names rather than symbols for special variables

my $dir = './Plants1024';

opendir my $dfh, $dir or die "Can't open $dir: $OS_ERROR";
my %genus_species;  ## store matching entries in a hash

for my …
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
1
解决办法
79
查看次数

在grep 表达式中使用chop

我的 Perl 脚本搜索文件名目录,使用grep仅输出名称中没有数字 2-9 的文件名。这意味着,按照预期,也将返回以数字“1”结尾的文件名。但是,我想使用chop函数输出这些没有“1”的文件名,但不知道如何。也许grepchop函数可以在一行代码中组合来实现这一点?请指教。谢谢。

这是我的 Perl 脚本:

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

my $dir = '/Users/jdm/Desktop/xampp/htdocs/cnc/images/plants';
opendir(DIR, $dir);
@files = grep (/^[^2-9]*\.png\z/,readdir(DIR));

foreach $file (@files) {
   print "$file\n";
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Ilex_verticillata.png
Asarum_canadense1.png
Ageratina_altissima.png
Lonicera_maackii.png
Chelone_obliqua1.png
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出,从文件名的末尾删除了数字“1”:

Ilex_verticillata.png
Asarum_canadense.png
Ageratina_altissima.png
Lonicera_maackii.png
Chelone_obliqua.png
Run Code Online (Sandbox Code Playgroud)

perl chop

1
推荐指数
2
解决办法
91
查看次数

数组的高级排序

我很难按字母顺序对 Perl 脚本的输出进行排序。

这是脚本:

#!/usr/bin/perl
use strict;
use warnings;
use English;   ## use names rather than symbols for special variables

my $dir = '/Users/jdm/Desktop/xampp/htdocs/cnc/images/plants';

opendir my $dfh, $dir  or die "Can't open $dir: $OS_ERROR";
my %genus_species;  ## store matching entries in a hash

for my $file (readdir $dfh)
{
    next unless $file =~ /.png$/;  ## entry must have .png extension
    my $genus = $file =~ s/\d*\.png$//r;
    push(@{$genus_species{$genus}}, $file);   ## push to array,the @{} is to cast the single entry to …
Run Code Online (Sandbox Code Playgroud)

arrays sorting perl

1
推荐指数
1
解决办法
69
查看次数

标签 统计

perl ×3

arrays ×1

chop ×1

sorting ×1