在尝试构建多个变量的字符串时获取不需要的换行符

时间:2018-06-09 00:38:35

标签: xml perl

我是Perl的新手并尝试创建一个脚本,该脚本从用户那里获取输入,然后根据该输入和网址从网站获取XML数据,然后将其转发回用户。

但是我现在遇到了一些问题,根据用户的输入建立了一个可用的链接。

这是我的完整代码:

use strict;
use warnings;
use utf8;

my $row = 0;

use XML::LibXML;

print "\n\n\nOn what place do you need a weather report for? -> ";

my $ort = <>;

my $url1 = "http://www.yr.no/place/Sweden/Västra_Götaland/";
my $url2 = "/forecast_hour_by_hour.xml";

my $url = join('', $url1,$ort,$url2);

my $dom = XML::LibXML->load_xml(location => $url);

print "\n\nSee below the weather for ", $ort, ":\n\n";

foreach my $weatherdata ($dom->findnodes('//time')) {

    if($row != 10){ 

        my $temp = $weatherdata->findvalue('./temperature/@value');
        my $value = $weatherdata->findvalue('./@from');

        my $valuesub = substr $value, 11, 5;

        print "At ", $valuesub, " the temperature will be: ", $temp, "C\n";

        $row++;
    }
}

print "\n\n";

我假设的这一点是:

my $ort = <>;

my $url1 = "http://www.yr.no/place/Sweden/Västra_Götaland/";
my $url2 = "/forecast_hour_by_hour.xml";

my $url = join('', $url1,$ort,$url2);

my $dom = XML::LibXML->load_xml(location => $url);

当我运行它时,我得到了这个: enter image description here

它进入换行符然后链接断开。

我认为问题在于$ort因为当我尝试打印$ort之后,我还会在收到换行符之后打印出来。

我希望我能清楚地解释清楚,或者你可以告诉我需要改进什么。

1 个答案:

答案 0 :(得分:2)

该换行符来自您的终端。您可以使用chomp功能删除它:

my $ort = <>;
chomp($ort);

通常会在一行中看到这个,这会产生相同的结果:

chomp( my $ort = <> );