#!/usr/bin/perl use strict; use warnings; my %status; my $file = './status.dat'; { local $/ = "hoststatus{\n"; if ( open my $fh, '<', $file ) { while ( my $block = <$fh> ) { my ($hostname,$status) = $block =~ m! host_name:([^\n]+) .*? scheduled_downtime_depth=(\d+) !xms; next if !( $hostname && $status ); $status{$hostname} = $status; } } else { print "Fehler beim Einlesen von $file: $!\n"; } } for my $host ( keys %status ) { print $host,"\n" if $status{$host} == 1; }