让我们这很容易.我想要的是:
@array = qw/one two one/;
my @duplicates = duplicate(@array);
print "@duplicates"; # This should now print 'one'.
Run Code Online (Sandbox Code Playgroud)
如何打印数组/哈希的重复值?
我试图找到一种方法来使用perl来删除包含以下内容的行:
errors:
mirror
raid*
pond
Run Code Online (Sandbox Code Playgroud)
我找到了:
perl -pi -e "s,errors:,,"
Run Code Online (Sandbox Code Playgroud)
有没有办法在一个命令中指定我正在寻找的所有模式?
我收到以下错误:
Use of uninitialized value $_ in concatenation (.) or string at checkfornewfiles.pl line 34.
Run Code Online (Sandbox Code Playgroud)
尝试运行以下代码时:
#!/usr/bin/perl -w
#Author: mimo
#Date 3/2015
#Purpose: monitor directory for new files...
AscertainStatus();
######### start of subroutine ########
sub AscertainStatus {
my $DIR= "test2";
####### open handler #############
opendir (HAN1, "$DIR") || die "Problem: $!";
########## assign theoutput of HAN1 to array1 ##########
my @array1= readdir(HAN1);
######## adding some logic #########
if ("$#array1" > 1) { #### if files exists (more than 1) in …Run Code Online (Sandbox Code Playgroud) 如何删除(或替换为空格)我的字符串的第4个和第5个字符,在本例中为数字5和数字6,从而得出:
123456789
Run Code Online (Sandbox Code Playgroud)
对此:
1234789
Run Code Online (Sandbox Code Playgroud) 可能这个问题多次被问到能否在你的perl脚本中加入awk one liner.但是这些问题对于以下问题过于具体:
示例:我有输出,ls -lart第9列是文件名.我很容易在awk中做到这一点ls -lart|awk '{print $9}'.同样的事情当然可以使用perl来完成readdir().但是在perl中提取第8列或第7列并不容易?如果我必须提取数据管道将其管道输送到sed等,情况会变得更糟.
另一个例子: 我有一个特定的DIR,它有许多格式的文件,如:
ABC_9090_DEF_10-22-30_13-07-2014.temp
Run Code Online (Sandbox Code Playgroud)
注意date_time.temp标记部分.这里的格式是ABC_4digits_DEF_hours-minutes-seconds_day-month-year
我想只看到刚刚创建的新文件(比如说从现在起5分钟之前).使用awk/sed的方法是(伪代码,让我知道你是否需要我复制实际的一个班轮):
ls -lart|awk '{print $9}'|egrep 提取10-22-30_13-07-2014问题: 但由于某种原因(其他复杂性)我想在perl中编写它并且我发现当使用系统命令在perl中使用它时,if条件if($ 1> $ mynum)会抛出错误.它说使用'>'语法错误,即使使用单引号,双引号,没有引号.
有人可以告诉我一般情况: