#!/usr/bin/env perl use strict; use warnings; use FindBin; use File::Basename qw/fileparse/; use List::Util qw/any/; my $lab_root = $FindBin::Bin; my @kickstarts = glob "$lab_root/*.ks"; my @bsname; my @predefined; for my $kickstart (@kickstarts) { open my $fh, '<', $kickstart or die "Cannot open $kickstart: $!"; while (<$fh>) { chomp; next if /^\s*#/; if (/--hostname=/) { my @fields = split /[=\s]/; push @bsname, $fields[1]; push @predefined, $kickstart; } } close $fh; next if any {$kickstart eq $_} @predefined; my $hostname = fileparse($kickstart, qr/\.ks$/i); push @bsname, $hostname; }