$bakjobs->{"$2"}{"dbt"} = $1; $bakjobs->{"$2"}{"cdt"} =$3; #### #!/usr/bin/perl my %bakjobs; &cdtcall(\%bakjobs); sub cdtcall(\%) { local($bakjobs) = shift; local($file); open (FILE, "./HD/PQ/c.bak"); while () { if ( /^BAK(\w+)+\s+([\w\_]+)\s*/i ) { $bakjobs->{"$2"}{"dbt"} = $1; $bakjobs->{"$2"}{"cdt"} =$3; } } close (FILE); }