是否有更清洁的方法
use Sys::Hostname qw(hostname);
my $hostname = hostname();
$hostname =~ s/\.domain//;
基本上,是否可以在不运行两个$hostname
分配且没有其他模块的情况下将主机名删除为其短名称?
答案 0 :(得分:2)
使用Sys::Hostname
:
use Sys::Hostname;
my ($short_hostname) = split /\./, hostname(); # Split by '.', keep the first part
使用system hostname命令:
chomp(my ($short_hostname) = `hostname | cut -f 1 -d.`);
答案 1 :(得分:2)
您可以使用Net::Domain
' hostname
代替
返回可用于标识主机的FQDN的最小部分。
use Net::Domain qw(hostname);
my $hostname = hostname();
如果没有其他模块,请调用外部命令hostname -s
-s, - short
显示短主机名。这是切割的主机名 第一个点。
chomp(my $hostname = `hostname -s`);