in reply to Re: How to Intercept Variable Access
in thread How to Intercept Variable Access

Oh, THANK YOU!! And sorry, I just noticed that this is an old thread from 2021 that popped up on the Recent Threads:
https://perlmonks.com/?node_id=11126426 This is where I saw you mention Tie::File.

I think, it popped up because someone commented on it just now.

Replies are listed 'Best First'.
Re^3: How to Intercept Variable Access
by LanX (Saint) on Sep 16, 2024 at 12:37 UTC
    Your welcome, have fun experimenting with tied variables.

    FWIW, your use case is not something I would solve with tie but just a function CD()

    • returning the cwd, like print CD;
    • setting the cwd when called with an argument, like CD('..')
    Even the CD="/tmp" syntax can be achieved with an attribute :lvalue see perlsub

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    see Wikisyntax for the Monastery

      The real fun starts with local:

      sub do_stuff { local $CD = tempdir(); croak "No Makefile found in $CD" unless -f 'Makefile'; croak "No .git directory in $CD" unless -d '.git'; ... }
        Well yes if you want the full syntactic sugar of variables, including interpolation, localization and ...

        Though I'd probably prefer a module exporting both. A cd function and a magic $CD

        I haven't checked, but I seem to remember that shell languages like bash provide both too°.

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        see Wikisyntax for the Monastery

        Edit

        °) well almost

        > PWD A pathname of the current working directory echo "$PWD"