在perl中,get()处理字符串,但不处理包含字符串[closed]的变量

vsnjm48y  于 2023-06-06  发布在  Perl
关注(0)|答案(1)|浏览(455)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
6天前关闭
Improve this question
为什么我不能在变量中传递URL字符串给“get”?

#use strict; use warnings;
use LWP::Simple; 
my $hxUrl;
my $Page;

$hxUrl="https://finance.yahoo.com/quote/SPY/history?period1=1653177600&  period2=1685059200&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true";

#using the variable, the page is not read in
$Page = get($hxURL);
print "at 10: length(Page) =", length($Page), "\n";  # length($Page) = null

#using the string directly, the page is accessed properly
$Page = get("https://finance.yahoo.com/quote/SPY/history?period1=1653177600&  period2=1685059200&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true");
print "at 14:length(Page) =", length($Page), "\n";  # length($Page) = 1399524

我已经注解掉了“use strict”,因为它不会编译,并坚持说:全局符号“$hxURL”需要显式的包名(您是否忘记声明“my $hxURL”?),网址为test.pl第9行。
不,我没有忘记-我在第三行宣布了。
如果我把'我的'放在第6行,我也会得到同样的信息
如果我把'my'放在第9行的父母中,它会抱怨:在www.example.com第10行打印中使用未初始化值test.pl
没有办法满足它!
我在其他几十个程序中使用过这种模式,没有“my”和“strict”,没有任何问题。我不明白为什么我在这个玩具例子中也有问题。
LWP的错误消息可能会有所帮助,但我没有得到任何消息。

mrphzbgm

mrphzbgm1#

你忘了声明“我的$hxURL”吗?),网址为test.pl第9行。
不,我没有忘记-我在第三行宣布了。
错误是正确的,解决错误也解决了你的问题。您声明并赋值了$hxUrl,但使用了$hxURL(不同的拼写!!)。因此,get内部使用的变量$hxURL为空,即你基本上调用了get(""),这肯定不会达到你预期的结果。

相关问题