小编Atm*_*Sci的帖子

在perl中打印没有完整路径的cwd?

我有一堆数据存储在由date标记的子目录中.我已经使用Cwd命令获取当前工作目录,以便我可以将其打印到我正在使用子目录中恢复的数据编写的vi文件.我使用Cwd作为数据字符串的前缀.有没有办法只打印当前目录名而不是路径?

例:

而不是打印 -

 /d2/aschwa/archive_data/METAR_data/20120302KDUX 121255Z.........
Run Code Online (Sandbox Code Playgroud)

有没有办法只打印 -

 20120302KDUX 121255Z.........
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码 -

use strict;
use warnings;
use file::find;
use Cwd;

my @folder = ("/d2/aschwa/archive_project/METAR_data/");

open( OUT , '>', 'KDUX_METARS.txt') or die "Could not open $!";

print OUT "Station, Day/Time, Obs Type, Wind/Gust, Vis, Sky, T/Td, Alt, Rmk\n";
print STDOUT "Finding METAR files\n";

my $criteria = sub {if(-e && /^2012/) {
                    open(my $file,$_) or die "Could not open $_ $!\n";
                      my $dir = getcwd;
                        while(<$file>) {
                          print OUT $dir,$_ if /KDUX …
Run Code Online (Sandbox Code Playgroud)

perl cwd

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

为什么elsif语句不能与@ARGV变量一起使用?

我正在处理时间,需要将某些值输入到基于UTC和本地标准时间差异的等式中.因此,对于洛杉矶,@ ARGV输入将为"8",并且需要插入嵌套方程中的值将为"4",但脚本将不会选择适当的值.相反,它只选择过程中的第一个值,尽管ARGV值不是5.我究竟做错了什么?

$std_time = (@ARGV[0]);
    if ($std_time = 5) {(std_time_pro = 7);}
    elsif ($std_time = 6) {(std_time_pro = 6);}
    elsif ($std_time = 7) {(std_time_pro = 5);}
    elsif ($std_time = 8) {(std_time_pro = 4);}
    elsif ($std_time = 9) {(std_time_pro = 3);}
    elsif ($std_time = 10) {(std_time_pro = 2);}

$shft_number = (($std_time_pro * 3600) / 86400);
Run Code Online (Sandbox Code Playgroud)

perl if-statement

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

标签 统计

perl ×2

cwd ×1

if-statement ×1