穿过这个小金块......我想我已经弄清楚了,但看看是否有人可以放下更多的光.
我在PERL5LIB环境变量中有一个用于记录的模块.它在e:/Scripts/Log/Logger.pm.以下是摘录:
package Log::Logger;
...
package Log::NullLogger;
use base 'Log::Logger';
...
package Log::FileLogger;
use base 'Log::Logger';
...
package Log::DateFileLogger;
use base 'Log::FileLogger';
...
package LogTester;
use Data::Dump 'dump';
test() unless caller();
sub test {
warn dump \%INC;
...
}
Run Code Online (Sandbox Code Playgroud)
我想对这个模块进行一些更改,所以我将其复制到e:/Test/Log/Log/Logger.pm并开始进行更改和测试...我添加了一个新类并更改了Log::Logger包中的继承例程...
package BasicFormatter;
...
Run Code Online (Sandbox Code Playgroud)
但我的测试很奇怪.一些新代码正在使用,有些则没有.转储%INC有:
"Log/Logger.pm" => "e:/Scripts/Log/Logger.pm"
Run Code Online (Sandbox Code Playgroud)
...... 旧模块!从我可以告诉,use base 'Log::Logger'走了出去,并重新加载Log/Logger.pm从PERL5LIB,替换只有在它的包装(即package BasicFormatter由新模块来了,但其他所有的包都是从旧的模块).
我读到了use parent,当我替换我时use base,use parent …
我不知道为什么以下代码输出一个空白文件.我正在运行Windows 8.我已经从这个社区获得了以前perl帮助的帮助,这正是我能够与我收到的帮助一起提供的.但是,我无法弄清楚这个脚本出错的地方.
#! perl
use strict;
use warnings;
use HTML::FormatText;
use LWP::Simple;
my $dateField = 'date=2018-12-31';
my $currency = "USD";
my $filename = 'C:\Users\Name\Desktop\doc3.txt';
my $address = "https://www.oanda.com/rates/api/v1/rates/$currency.csv?api_key=gpolonsky&decimal_places=4&$dateField&fields=averages"e=USD"e=AUD"e=BRL"e=CAD"e=GBP"e=CHF"e=CNY"e=DKK"e=HKD"e=INR"e=IDR"e=ILS"e=JPY"e=MXN"e=NOK"e=PHP"e=PLN"e=SGD"e=sKK"e=ZAR"e=KRW"e=SEK"e=TWD"e=THB"e=EUR"e=MYR"e=NZD"e=SAR"e=TRY"e=RUB"e=CZK"e=AED"e=CLP"e=EGP"e=MAD"e=NGN"e=OMR"e=QAR";
my $content = get($address);
my $s = 1;
defined $content or die "Cannot read '$address': $!";
$content =~ s/^[^\n]*\n//s;
$content =~ s/^/20181231,/gm; # The m option makes ^ match at the start of each line
$content =~ s/,2018-12-3[0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\+0000*//g;
$content =~ s/([A-Z][A-Z][A-Z]),[0-9]*\.[0-9][0-9][0-9][0-9]/$1/g;
my $string = HTML::FormatText->format_string(
$content,
leftmargin => 0,
rightmargin => 23, …Run Code Online (Sandbox Code Playgroud) 我的输入文件包含以下内容:
1.1 CORE VT MODEL
.model ABC
model selector
Run Code Online (Sandbox Code Playgroud)
我用这段代码来捕获".model"字符串
if ($array=~ "\.model")
Run Code Online (Sandbox Code Playgroud)
但我的输出文件在我的输入文件中捕获所有"模型"字符串.那么如何在输入文件中捕获".model"字符串?非常感谢
perl ×3