Mons Anderson > lvalue-0.01 > lvalue

Download:
lvalue-0.01.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  0
View/Report Bugs
Module Version: 0.01   Source  

NAME ^

lvalue - use lvalue subroutines with ease

VERSION ^

Version 0.01

SYNOPSIS ^

Simply put get and set blocks at the end of your lvalue sub. Please note, no comma or semicolon between statements are allowed (in case of semicolon only last statement will be take an action)

        use lvalue;

        sub mysub : lvalue {
                get {
                        return 'result for get';
                }
                set {
                        my $set_value = shift;
                        # ...
                }
        }

        mysub() = 'test'; # will invoke set block with argument 'test';
        print mysub(); # will invoke get block without arguments. result will be returned to print;

        sub readonly : lvalue {
                get {
                        return 'readonly value';
                }
        }
        
        print readonly();  # ok
        readonly = 'test'; # fails

        sub writeonly : lvalue {
                set {
                        my $set_value = shift;
                        # ...
                }
        }
        
        writeonly = 'test'; # ok
        print writeonly();  # fails

EXPORT ^

There are 2 export functions: set and get. If you don't want to use export, you may use full names

        sub mysub : lvalue {
                lvalue::get {
                        return 'something';
                }
                lvalue::set {
                        my $set_value = shift;
                }
        }

FUNCTIONS ^

set

invoked with argument from right side

get

invoked without arguments. the returned value passed out

AUTHOR ^

Mons Anderson, <mons@cpan.org>

BUGS ^

None known

COPYRIGHT & LICENSE ^

Copyright 2009 Mons Anderson.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: