使用内置Perl模块捕获短主机名?

时间:2017-04-14 02:10:18

标签: perl

是否有更清洁的方法

use Sys::Hostname qw(hostname);

my $hostname = hostname();
$hostname =~ s/\.domain//;

基本上,是否可以在不运行两个$hostname分配且没有其他模块的情况下将主机名删除为其短名称?

2 个答案:

答案 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`);