#!/usr/bin/perl use strict; if ( @ARGV != 2 ) { die "Usage: $0 pattern file.name\n"; } my ( $find, $filename ) = @ARGV; open( my $fh, "<", $filename ) or die "Cannot open $filename: $!\n"; $/ = undef; # set INPUT_RECORD_SEPARATOR to "slurp-mode" my $seq = <$fh>; # entire file is now in $seq; $seq =~ tr/\n//d; # remove all newlines (I think you don't want spaces) open( my $out, ">", "write.txt" ) or die "Cannot create write.txt: $!\n"; while ( $seq =~ /(..)$find(..)/g ) { print "before = $1 ; after = $2\n"; print $out "$1\n$2\n"; } #### your_script_name agt input_file.name # or: perl your_script_name agt input_file.name