#!/usr/bin/env perl use strict; use warnings; use File::Basename; my $lab_root = dirname $0; opendir( DH, $lab_root) or die "Cannot open $lab_root: $!\n"; my @kickstarts = grep ( /\.ks$/, readdir(DH)); my @bsname ; my @predefined; my $hostname; for my $kickstart (@kickstarts) { open my $fh, $kickstart or die "Cannot open $kickstart: $!"; while (<$fh>) { chomp; if ( /(?s)^((?!#).)*--hostname=/ ) { my @fields = split /[=\s]/; $hostname = $fields[1]; push @bsname , $hostname; push @predefined , $kickstart; } } close $fh; next if $kickstart ~~ @predefined; $hostname = (split /\./, $kickstart )[0]; push @bsname, $hostname; }