2015-09-10 3 views
0

Я просто пытаюсь изучить PERL. Я пробовал эту линию, но конкатенация не была выполнена.Perl Variable Cocatenation

$host=qx(hostname -s); 
my $day=qx(date +%A); 
$fileType="$host-$day.tgz"; 
print $fileType; 

Когда я выполнении этого я получить выход, как, один на один

ldap 
-Thursday 
.tgz 

Но мне нужен выход, как Ldap-Thursday.tgz Пожалуйста, помогите мне в этом. Спасибо заранее.

+0

Вопросы, относящиеся к программированию и разработке программного обеспечения, не относятся к теме, см. [Какие темы можно задать здесь?] (Http://superuser.com/help/on-topic). – DavidPostill

+0

Пожалуйста, наведите курсор на теги в своем вопросе и ** прочитайте ** резюме. «Вопросы о Perl должны быть ограничены средой разработки Perl, запуском Perl или использованием Perl для автоматизации задач на вашем компьютере». – DavidPostill

ответ

2

qx возвращает строку, включая окончательную новую строку. Удалите ее с chomp:

$host = qx{hostname -s}; 
chomp $host; 

Обратите внимание, что Sys::Hostname обеспечивает hostname подпрограмму, которая уже удаляет любые нежелательные пробелы.

Аналогичным образом, вы можете использовать localtime->fullday с Time::Piece вместо того, чтобы звонить date +%A.

+0

спасибо @choroba. Теперь он работает хорошо. Большое спасибо..! – Ganeshgm7

Смежные вопросы