Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I worked for many years with PHP and learned to live and succeed with its sometimes very "organic" structure and behaviour.

Its philosophy on work with Strings and Arrays is:
"We will copy safely everything, except in very special cases and only momentanely."
- So that a Reference on a String becomes a String again if you dont watch after it.
That results in that in Big abstracted Data Structures the Data gets copied again and once again.
Which creates Big Server Load for large texts.

Also assigning parts of Associative Array Trees would Copy the subbranch of the Tree.
Which in Big Structures would result again in heavy in-memory copying.

I found in Perl a Reference is always a Reference untill you dereference it.
Some find the Syntax weird but I think when you get it right it does exactly what you expect it to do.
It does not under the hood some hidden stuff which is not what you intended to happen!!

my $sstr = "my string"; my $rsstr = \$sstr; print "org str '$sstr'; addr: '" . \$sstr . "'\n"; $sstr .= " + my string add"; print "rs 1 str '$sstr'; addr: '" . \$sstr . "'\n"; $$rsstr .= " + add to ref"; print "rs 2 str '$sstr'; ref: '" . $rsstr . "'; addr: '" . \$sstr . "' +\n";
results in:
org str 'my string'; addr: 'SCALAR(0x22e8af8)' rs 1 str 'my string + my string add'; addr: 'SCALAR(0x22e8af8)' rs 2 str 'my string + my string add + add to ref'; ref: 'SCALAR(0x22e8 +af8)'; addr: 'SCALAR(0x22e8af8)'

When I assign a text to another text I still keep the same Address Space
And the text is not copied in-memory somewhere else, or destroyed and recreated! ... Hello Python!!

At first I felt quite bewildered by the Function Parameter Handling ...
but when you really get to dominate it it unleashes the Power of Real Polymorphism
wantarray() is another powerful tool for Polymorphism.
It gives you the right thing at the right time.

So its a really Powerful Tool to build beautiful stuff in the hands of a skilful programmer!!
So I feel also as finally being understood and given a Home.


In reply to Re: Perl, I'm coming home... by HugoNo1
in thread Perl, I'm coming home... by ait

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2024-04-19 04:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found