What is attributes (sub :lvalue, etc

Attributes in Perl are special annotations that can be applied to packages, variables, subroutines, and other constructs to modify their behavior. The `:lvalue` attribute is one of these attributes, indicating that a subroutine can be used in a context where it's expected to return a modifiable value. This allows you to use the subroutine as if it were a variable.

Here’s an example of a subroutine with the `:lvalue` attribute:

sub foo :lvalue { return $value; } my $value = 10; foo = 20; # modifies the value returned by foo print $value; # prints 20

Attributes Perl :lvalue subroutine modifiable value