in reply to Re^5: writing a pragma
in thread writing a pragma

I want to write a pragma, which reads the contents of file where it is imported.

1. use mypragma;

2. use Data::Dumper;

3. my $hash = {1,2,3,4,5,6}

4. print Dumper $hash;

I want to get the lines from 2,3,4 into the mypragma which was loaded into memory for this program.

I am not sure that this is possible, I just want to try.

Replies are listed 'Best First'.
Re^7: writing a pragma
by Anonymous Monk on Apr 27, 2014 at 10:28 UTC

    sure its possible, but such a thing shouldn't be a pragma :) see caller and open and import and splice and zentara package/module tutorial....

    use NotAPragma; ...

    NotAPragma.pm

    package NotAPragma; sub import { my ($package, $filename, $line) = caller; open my($infh), '<:raw', $filename or die "Can't open caller $filename : $!"; my @lines = ( 'pad', readline $infh ); close $infh; splice @lines, 0, $line; print "@lines\n"; ## << this is the ... after use NotAPragma; } 1;
      Thank you the solution.
      can you please explain y it should not be pragma.

      does it affect anything if we write it as pragma.

        can you please explain y it should not be pragma.

        Because it is not a pragma, the end ; Its perlstyle convention that only pragmas be named like pragmas because only pragmas are pragmas :)

        does it affect anything if we write it as pragma

        maybe :) does it affect anything if you label a jar of "hot mustard" as "eye drops"?

        Food for thought Is it a pragma or a module?, RFC : Pragma vs. Module