#!/usr/bin/perl use warnings; use strict; open( my $subcktFh, '>', 'SUBCKT.TXT' ) or die $!; open( my $modelFh, '>', 'MODEL.TXT' ) or die $!; # Alle *.txt-Dateinamen im aktuellen Verzeichnis my @txtfiles = glob( "*.txt" ); # Iteriere durch die Dateinamen (in sortierter Folge) for my $file ( sort @txtfiles ) { open( my $fh, '<', $file ) or next; # bei Fehler weitermachen # ganze Datei in Skalar einlesen, dafür $INPUT_RECORD_SEPARATOR auf undef # d.h. ganze Datei ist eine "Zeile", $content-Variable außerhalb des Blocks deklarieren; my $content; { local $/; $content = <$fh>; close $fh; } # '.SUBCKT' am Dateianfang (\A) oder nach Newline (\n)? # m{...}x: Whitespace im Suchmuster ignorieren if ( $content =~ m{ (\A|\n) \.SUBCKT \b }ix ) { print $subcktFh "$file\n"; } else { print $modelFh "$file\n"; } } close $subcktFh; close $modelFh;