in reply to How to modify the actual arguments

There is something you are not telling us.

Update: your function is fine, it is your call that is the issue as Zaxo pointed out.

use strict; use warnings; my $str1 = "This is string 1."; my $str2 = "String 2 this one is."; upper ($str1, $str2); print "$str1 $str2"; sub upper { tr/a-z/A-Z/ for @_; }

Prints:

THIS IS STRING 1. STRING 2 THIS ONE IS.

DWIM is Perl's answer to Gödel