in reply to Re^3: Basic mod-perl question : why my variable is undefined ?
in thread Basic mod-perl question : why my variable is undefined ?

OK, I understand. Yes, in this simple case, it will be the solution. But it is very complicated if you must pass all the variable without the possiblity to have common data. It becomes more complicated than a good old C program... I you add the mass of problems linked to UTF8, I ask me if PERL is still a good solution.... Shhht!
  • Comment on Re^4: Basic mod-perl question : why my variable is undefined ?

Replies are listed 'Best First'.
Re^5: Basic mod-perl question : why my variable is undefined ?
by kennethk (Abbot) on Jul 23, 2014 at 18:48 UTC
    As an old Fortran hack, I understand the issue of long function call lists, but I am concerned by the issues of common blocks and global variables far more acutely. The advantage Perl has over C in this regard is the ease of working with arrays, hashes and even objects. If your call-list is more than a handful of parameters, you should reconsider the design of your data structures.

    In any case, the posted pseudo-code could be updated to use a code ref and a closure in the following way:

    my $lig; ... $lig=4; print STDERR "ligA <<$lig>>\n"; my $xxxx = sub { ... print STDERR "ligX <<$lig>>\n"; }; print STDERR "ligB <<$lig>>\n"; $xxxx->();

    The code ref has identical scope to the lexical variable, so know you don't have the potential for cross-thread contamination.

    And I would very strongly disagree with the idea that Perl's handling of UTF-8 is problematic in comparison to any other language offering out there.


    #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

      Thank you. The closure is here the good solution to share data. I had never understood this mechanism.
      About UTF8 you are right too, that I have never used it in other language than PERL. So I keep my tongue in my mouse...