#!/usr/bin/perl -- use strict; die "We don't seem to be in the right directory.\n" unless ( -d 'inboundd' and -d 'DN_Dump' and -d 'MO_Dump' ); my @datfiles = ; die "No inboundd/*.dat files were found. We must be done.\n" unless ( @datfiles ); local $/; # set input record separator to "undef" for my $GetFile ( @datfiles ) { ( my $PutFile = $GetFile ) =~ s{inboundd/}{}; if ( $PutFile =~ /^DN_/ ) { rename $GetFile, "DN_Dump/$PutFile" or die "Can't move $GetFile to DN_Dump: $!"; next; } open( CHECKBOOK, $GetFile ) || die "$GetFile: $!"; my $InString = ; close CHECKBOOK; rename $GetFile, "MO_Dump/$PutFile" or die "Can't move $GetFile to MO_Dump: $!"; # GETTING THE FILE OUT AND FORM MO if (( my @InArrData = split( /,/, $InString )) >= 9 ) { my ( $Mobile, $Msg, $Short, $Vendor, $Inbound ) = @InArrData[1,5,6,7,9]; $Msg =~ s/[0-9a-f]{2}/chr(hex($1))/egi; print "mo:$Mobile:$Short:$Inbound:$Vendor:$Msg\n"; } }