Получение нежелательного разрыва строки при попытке построить строку из нескольких переменных - PullRequest
0 голосов
/ 09 июня 2018

Я новичок в Perl и пытаюсь создать сценарий, который принимает ввод от пользователя, а затем получает данные XML с веб-сайта на основе этого ввода вместе с URL-адресом, а затем передает его обратно пользователю.

Но у меня были некоторые проблемы с созданием полезной ссылки на основе ввода от пользователя.

Это мой код полностью:

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 голосов
/ 09 июня 2018

Этот перевод строки приходит с вашего терминала.Вы можете использовать функцию chomp, чтобы удалить ее:

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

Обычно это можно увидеть в одной строке, что дает тот же результат:

chomp( my $ort = <> );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...