Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6715[/thread]

Testen, ob referenz blessed ist



<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
esskar
 2005-02-17 01:02
#51827 #51827
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Gibt es ne möglichkeiten zu testen, ob eine referenz geblessed ist?
coax
 2005-02-17 01:35
#51828 #51828
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Koennte mir in etwa so etwas vorstellen:
Code: (dl )
1
2
3
4
5
6
  sub is_blessed {
     return (ref $_[0]
             && ! grep    { ref $_[0] eq $_ }
                  qw[ SCALAR ARRAY HASH  CODE GLOB LVALUE ]
               )  ? 1 : 0;
 }


aber auf die Idee bist mit Sicherheit auch selber gekommen. :)
,,Das perlt aber heute wieder...'' -- Dittsche
Taulmarill
 2005-02-17 01:43
#51829 #51829
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
es gibt sicherlich eine einfachere möglichkeit, aber mit Devel::Peek kann man die attribute einer variable Dumpen und geblesste variablen erkennt man am gesetzten STASH attribut.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
sri
 2005-02-17 02:10
#51830 #51830
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
use B;
print "Is nen objekt!" if B::class($something);
esskar
 2005-02-17 02:24
#51831 #51831
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=sri,17.02.2005, 01:10]
Code: (dl )
1
2
use B;
print "Is nen objekt!" if B::class($something);
[/quote]
geil!
ptk
 2005-02-17 15:38
#51832 #51832
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Die richtige Antwort ist use Scalar::Util qw(blessed)
esskar
 2005-02-17 15:43
#51833 #51833
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=ptk,17.02.2005, 14:38]Die richtige Antwort ist use Scalar::Util qw(blessed)[/quote]
noch besser :)
Taulmarill
 2005-02-17 16:05
#51834 #51834
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
[quote=ptk,17.02.2005, 14:38]Die richtige Antwort ist use Scalar::Util qw(blessed)[/quote]
das ist eine und nicht die richtige antwort.
remember TIMTOWTDI
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Rambo
 2005-02-17 16:41
#51835 #51835
User since
2003-08-14
803 Artikel
BenutzerIn

user image
was ist denn blessed?
renee
 2005-02-17 17:03
#51836 #51836
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zitat perldoc -f bless:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
       bless REF,CLASSNAME
bless REF
This function tells the thingy referenced by REF
that it is now an object in the CLASSNAME package.
If CLASSNAME is omitted, the current package is
used. Because a "bless" is often the last thing
in a constructor, it returns the reference for
convenience. Always use the two-argument version
if the function doing the blessing might be inher-
ited by a derived class. See perltoot and perlobj
for more about the blessing (and blessings) of
objects.

Consider always blessing objects in CLASSNAMEs
that are mixed case. Namespaces with all lower-
case names are considered reserved for Perl prag-
mata. Builtin types have all uppercase names, so
to prevent confusion, you may wish to avoid such
package names as well. Make sure that CLASSNAME
is a true value.

See "Perl Modules" in perlmod.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2005-02-17 01:02.