#!/usr/bin/perl use strict; # parameter Definition before use them use warnings; # Version 0.3 my $BString = "Start"; my $EString = 'End'; sub ask_user { my $question = shift; print $question, ": "; chomp( my $answer = ); return $answer; } #> main #> ------------------------------------------------------------------------- system("clear"); my $infile = ask_user( "Please name the input file" ); my $outfile = ask_user( "Please name the output file" ); my $number = ask_user( "Please enter the call number" ); open my $in, '<', $infile or die "open($infile, ro) failed: $!\n"; open my $out, '>', $outfile or die "open($outfile, w) failed: $!\n"; my @alldata; my @data; my $flag = 0; while ( my $line = <$in> ) { if ( $line =~ m/$BString/ .. $line =~ m{$EString} ) { # speichere Zeilen von $Bstring bis $EString push @data, $line; $flag = 1 if $line =~ m{Number=$number}; if ( $line =~ m{$EString} ) { push @alldata, @data; if ( $flag == 1 ) { print $out @data; $flag = 0; } @data = (); } } } close $out; close $in;