The assignment is OK. The problem lies in the way how you iterate over the hash:
foreach my $arg ( %arguments ) {
You want to only iterate over the keys:
foreach my $arg ( keys %arguments ) {
Without keys , a hash behaves like a flattened list of key-value pairs, i.e.
key1, value1, key2, value2, ...
With warnings on, you'd have been warned about the uninitialized values for some "keys" (i.e. the real values):
Use of uninitialized value in concatenation (.) or string at ...
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
|