in reply to Perl data types and references

Is my (@args) = @_; equivalent to my @sargs = @_;?
Yes it is

my $config = {"delete" => 0, soFiles =>[]};
Is it right that $config is a hash table?
Technically $config is not a hash table but a reference to a hash
is these 2 lines are equivalent ?
my $config = {"delete" => 0, soFiles => }; my $config = {"delete" => 0, "soFiles" => };
Yes they are.
$config->{delete} = 1; # why -> is it a reference ?

Yes it is a reference

why not to use : $config{delete} = 1 ?
Because it is a reference and writing it that way (ie $config{delete} will look for a structure named %config and create/modify a key named delete to 1 (depending on strict and if %config exists). The first way does the same to the hash which $config refers to.

-enlil