in reply to How is assigning to pos() possible?

In case you're also wondering more generally why it's possible to assign something to a function, the answer is that it is an "lvalue" sub. Another notable example of such a function is substr:

my $foo = "Hello, World!"; substr($foo,7,5) = "PerlMonks"; print "$foo\n"; __END__ Hello, PerlMonks!

You can even write Lvalue subroutines yourself:

my $value; sub foo : lvalue { $value } foo() = "Bar"; print "$value\n"; __END__ Bar

However, at least in my experience, they're only really useful in a few rare circumstances.