in reply to Indirect object vs regular object
It's not a different type of object, it's just a different syntax that does the same thing - the Indirect Object Syntax. For reasons documented in that link, its use is generally discouraged, but it's still used in print (and sometimes system/exec). You also still see it often in expressions like the following, because new is a keyword in other languages.
my $file1 = new File $path, $data; # is the same as my $file2 = File->new($path, $data);
|
|---|