Schrift
[thread]6851[/thread]

int ($calar) ??: komm da raus du int



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
lichtkind
 2005-04-05 18:29
#53332 #53332
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
wie kann ich überprüfen im scalar ein int ist ohne eine warnung zu bekommen? oh man as für eine anfängerfrage
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Ishka
 2005-04-05 18:50
#53333 #53333
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
meinst du if($scalar=~m#^\d+$#){ .. } oder irgendwas anderes?

edit: hab das mit warnung nicht gelesen:
if(defined $scalar && $scalar=~m#^\d+$#){ .. }\n\n

<!--EDIT|Ishka|1112712651-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
renee
 2005-04-05 18:51
#53334 #53334
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du vergisst die negativen Ganzzahlen, die durchaus zu den Integerzahlen gehören und Wissenschaftliche Notation geht Dir auch verloren (falls diese Berücksichtigt werden soll)!
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/
Taulmarill
 2005-04-05 18:57
#53335 #53335
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use strict;
use warnings;

my @numbers = ( 10, -10, 10.1, -10.1 );

for ( @numbers ) {
if ( $_ == int $_ ) {
print "$_ ist ein integer.\n";
}
else {
print "$_ ist kein integer.\n";
}
}
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Ishka
 2005-04-05 18:58
#53336 #53336
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
brauch negative Zahlen zu selten, wenns mich interessiert, b ne Zahl ne Ganzzahl ist ;)

if(defined $scalar && $scalar=~m#^-?\d+$#){ .. }

perl macht m.W. keine wissensschaftliche Notation, wenn es die Zahlen noch exakt darstellen kann.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Ishka
 2005-04-05 18:59
#53337 #53337
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Taumarill:

perl -wle 'int("Hallo Welt")'
Argument "Hallo Welt" isn't numeric in int at -e line 1.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
lichtkind
 2005-04-05 19:03
#53338 #53338
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ich brauch auch negative zahlen aber ich dachte das es einen perl eignen weg gibt wenn nicht nunja nehm ich die regex
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Ishka
 2005-04-05 19:12
#53339 #53339
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
kannst natürlich auch vorher die warnungen abschalten und nachher wieder anschalten. Aber schneller als ein Regex wird das wahrscheinlich erst bei vielen Zahlen.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Taulmarill
 2005-04-05 19:19
#53340 #53340
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
achso, da hab ich die aufgabenstellung verfehlt :-)
es ist aber auch relativ trivial mit nem regex die wissenschaftliche notation (aka exponent?) zu matchen /^-?\d+(?:e\+\d+)?$/
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Ishka
 2005-04-05 19:20
#53341 #53341
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Dann kannst du dir aber auch bloß sicher sein, daß es ne Zahl ist und nicht ne Ganzzahl.
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2005-04-05 18:29.