use HTML::TreeBuilder::XPath;
my $temp_path = $ENV{'TEMP'}."\\html\\globals_func.html";
// prints as C:\Users\Rockstar\Appdata\Local\Temp\html\globals_func.html
my $url = $temp_path;
my $page = get($url) or die $!;
my $p = HTML::TreeBuilder::XPath->new_from_content($page);
我收到错误:不支持协议“c”
时输出正确
my $url='file:///C:/Users/Rockstar/AppData/Local/Temp/html/globals_func.html';
因为我想让它在所有系统中运行,所以我使用的是全局环境变量。
如何使用正则表达式在$ url中将'\'更改为'/',还是有其他方式?
HTML文件存在于系统本身。
答案 0 :(得分:3)
使用Path::Class::URI创建跨平台file://
URI。
答案 1 :(得分:2)
这应该适合你。
use HTML::TreeBuilder::XPath;
my $temp_path = $ENV{'TEMP'}."\\html\\globals_func.html";
// prints as C:\Users\Rockstar\Appdata\Local\Temp\html\globals_func.html
$temp_path=~tr/\\/\//; # Replaces backward slashes with forward slashes
$temp_path='file://'.$temp_path; # Appends path with file://
my $url = $temp_path;
my $page = get($url) or die $!;
my $p = HTML::TreeBuilder::XPath->new_from_content($page);