2017-04-14 2 views
1

は基本的にビルドインのPerlモジュールを使用して短いホスト名をキャプチャしますか?

use Sys::Hostname qw(hostname); 

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

を行うためのクリーンな方法があり、それは2つの$hostname割り当てを実行せずに、追加モジュールなしでその短い名前に至るまで、ホスト名を除去することは可能でしょうか?

システムhostnameコマンドを使用して
use Sys::Hostname; 

my ($short_hostname) = split /\./, hostname(); # Split by '.', keep the first part 

Sys::Hostnameを使用して

+0

あなたは '$ hostname'に対して1つの割り当てしか行いません。 2行目は代入ではありません。あなたは変数で操作しています。なんで気にするの? – simbabque

答えて

2

chomp(my ($short_hostname) = `hostname | cut -f 1 -d.`); 
1

あなたが代わりにNet::Domainhostname

を使用することができるFQDNの最小の一部を返します。ホストの識別に使用されます。追加モジュールなし

use Net::Domain qw(hostname); 
my $hostname = hostname(); 

hostname -s

-s外部コマンドを呼び出す、
が短いホスト名を表示します--short。これは、 の最初のドットで切り取られたホスト名です。

chomp(my $hostname = `hostname -s`); 
関連する問題