Hello bliako,

for sure in your resarch you read create-your-own-dualvars. It tells $! is already dualvar:

perl -le "for (0..42){local $!; $! = $_; print 0 + $!, qq( - $!)}" 0 - 1 - Operation not permitted 2 - No such file or directory 3 - No such process 4 - Interrupted function call 5 - Input/output error 6 - No such device or address 7 - Arg list too long 8 - Exec format error 9 - Bad file descriptor 10 - No child processes 11 - Resource temporarily unavailable 12 - Not enough space 13 - Permission denied 14 - Bad address 15 - Unknown error 16 - Resource device 17 - File exists 18 - Improper link 19 - No such device 20 - Not a directory 21 - Is a directory 22 - Invalid argument 23 - Too many open files in system 24 - Too many open files 25 - Inappropriate I/O control operation 26 - Unknown error 27 - File too large 28 - No space left on device 29 - Invalid seek 30 - Read-only file system 31 - Too many links 32 - Broken pipe 33 - Domain error 34 - Result too large 35 - Unknown error 36 - Resource deadlock avoided 37 - Unknown error 38 - Filename too long 39 - No locks available 40 - Function not implemented 41 - Directory not empty 42 - Illegal byte sequence

> but I did not find any way of driving an existing variable into schizophrenic behaviour.

All scalars are already schizophrenic (but using strict they claim for a psychologic support, not sure if for the compiler or for the programmer ;)

perl -wle "use strict; for my $x(@ARGV){ print qq(I was: $x); print qq +(adding 1 I'm: ),$x + 1; print $x > 0 ? qq(I'm more than zero! ) : qq +(I'm less than or zero! ); print $\ }" 0z 42A I was: 0z Argument "0z" isn't numeric in addition (+) at -e line 1. adding 1 I'm: 1 I'm less than zero! I was: 42A Argument "42A" isn't numeric in addition (+) at -e line 1. adding 1 I'm: 43 I'm more than zero!

perl -wle "$x = q(a); print ++$x" prints b

L*

PS

This is even more weird.. I want to see if the numeric part of a filehandle was the same of what fileno returned.. it would be fun.. but no fileno

perl -lwe "open my $fh, '>', 'test'; print 0 + $fh; print + $fh" 16950176 GLOB(0x102a3a0) # ..and no: 16950176 is not the sum of numerical values of characters perl -wle "$str = q!GLOB(0x102a3a0)!; for (split '',$str){ print qq($_ + = ),ord($_);$res += ord($_);} print $res" G = 71 L = 76 O = 79 B = 66 ( = 40 0 = 48 x = 120 1 = 49 0 = 48 2 = 50 a = 97 3 = 51 a = 97 0 = 48 ) = 41 981

PPS perl -wle "$x = q(a); print ++$x" prints b but not all chars are numeric, sorry I'm not JAPH, but J1PH1 :)

perl -we "print ++$_ for 'I@OG+' =~ /./g" Argument "@" isn't numeric in preincrement (++) at -e line 1. Argument "+" treated as 0 in increment (++) at -e line 1. J1PH1

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

In reply to Re: Schizophrenic var by Discipulus
in thread Schizophrenic var by bliako

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



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.