Как избежать распечатки дополнительной информации - PullRequest
2 голосов
/ 14 июля 2011

В моем Perl-коде я использовал следующую строку:

$host=$hostname if ($host eq undef);

В выводе я получаю следующее сообщение:

Use of uninitialized value $host in string eq at cli.pl line 18.

Хотя я не использую strict.Как можно избежать вывода этого сообщения на печать?

Ответы [ 3 ]

5 голосов
/ 14 июля 2011

Используйте функцию defined:

$host=$hostname if (!defined $host);

Или более короткая форма:

$host=$hostname unless $host;

use strict, правда.)

2 голосов
/ 14 июля 2011

Этот оператор может помочь: определенный или оператор

$host = $host // $hostname; 

, если определено $host, даже если его значение равно '', 0, '0', онобудет использовать $host в качестве значения, только если $host равно undef, $host получит значение $hostname

1 голос
/ 14 июля 2011

Я думаю, что вы хотите

$host //= $hostname;

// - это оператор "определенный или".// = версия присвоения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...