sub replace { my $file = shift; open FILE , $file or die "oups"; my @BUFFER = and close FILE; my @OUT_BUFFER; foreach my $line ( @BUFFER ) { if ( $line =~ /~~/ ) { my @SPLITTED = split( /~~/ , $line ); foreach ( @SPLITTED ) { if ( $_ =~ /\$/ ){ my $tmp = eval $_; $line =~ s/~~\$.*~~/$tmp/; } } } push ( @OUT_BUFFER , $line ); } print @OUT_BUFFER; }