Schrift
[thread]9021[/thread]

datentyp unsigned für perl?

Leser: 1


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
tolgale
 2007-05-20 23:59
#76791 #76791
User since
2007-04-24
22 Artikel
BenutzerIn
[default_avatar]
geht das nur mit der programmiersprache C, oder kann ich auch in perl diesen datentyp einsetzen?

habe bereits über google gesucht ( meiner meinung nach auch mit den richtigen begriffen ), wurde aber nicht fündig. die forensuche hat auch keinen erfolg gebracht, ich bedanke mich für eure antworten schonmal jetzt.

mfg, tolgale
$nobody==$perfect?$everybody==nobody$:$everybody==$perfect; # <(^^,)>
Ronnie
 2007-05-21 00:02
#76792 #76792
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
gibt es in perl5 nicht. wenn nötig nimm CPAN:bigint.
lichtkind
 2007-05-21 02:14
#76793 #76793
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
warum brauchst du so etwas?
reicht es nicht das vorzeichen wegzulassen?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
tolgale
 2007-05-21 17:41
#76794 #76794
User since
2007-04-24
22 Artikel
BenutzerIn
[default_avatar]
@lichtkind, das hat mich interessiert ob das auch mit perl möglich ist

mache mir nämlich momentan ein eigenes bild davon, was ich mit perl alles realisieren kann & was nicht ( hier z.b. greife ich lieber auf C zurück, jetzt nachdem ich weiß, das perl sowas nicht hat ). in perl5 gibt es das nicht, eine zweite programmiersprache zu können wäre also nicht schlecht ( aber jetzt nicht wegen dieser einen frage, auch aus anderen gründen ).

mfg,\n\n

<!--EDIT|tolgale|1179755006-->
$nobody==$perfect?$everybody==nobody$:$everybody==$perfect; # <(^^,)>
Taulmarill
 2007-05-21 18:21
#76795 #76795
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Bei dir hört sich das fast so an, als währe der Datentyp unsigned ein generelles Feature, was C hat und Perl nicht. Perl hat generell keine Datentypen sondern entscheidet zur Laufzeit wie etwas interpretiert und ggf. umgewandelt werden muss. Das hat sowohl Vor- als auch Nachteile. Ich würde das aber von meinem pragmatischen Standpunkt aus auf der Habenseite von Perl und nicht auf der von C verbuchen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Ronnie
 2007-05-21 19:29
#76796 #76796
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Ich möchte Taulmarills Ausführung unterstützen. In Perl6 wirst du die Möglichkeit haben bei Bedarf stark zu typisieren. Mit CPAN:Moose hast du schon heute die Möglichkeit SubTyping, in Form von Constraints, zu verwenden - das geht deutlich über die Funktionalität klassischer Typisierung hinaus.
tolgale
 2007-05-22 00:11
#76797 #76797
User since
2007-04-24
22 Artikel
BenutzerIn
[default_avatar]
Quote
Bei dir hört sich das fast so an, als währe der Datentyp unsigned ein generelles Feature, was C hat und Perl nicht.


meine erwartung war ein perl modul das mir bei der lösung behilflich sein kann. das ich das mit perl generell nicht kann war mir schon klar ( ich hätte es am anfang erwähnen sollen das mit dem modul, sry ).

Quote
das geht deutlich über die Funktionalität klassischer Typisierung hinaus.


jop, ich lese mich gerade ein & stelle das auch fest. mit diesem objekt system bin ich schon zufrieden.

jetzt kann ich auch das verdeutlichen, was ich in meinem zweiten post meinte, wenn ich meine perl-distribution installiere, habe ich z.b. ein objekt system wie moose nicht standardmäßig als perlmodule dabei ( somit kann ich es natürlich auch nicht einsetzen, solange ich es nicht nachträglich hinzufüge ).

mfg,

und nochmals danke schön für eure beteiligung!
$nobody==$perfect?$everybody==nobody$:$everybody==$perfect; # <(^^,)>
lichtkind
 2007-05-22 20:26
#76798 #76798
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
perl 6 kennt typen und dort kann man sich auhc leicht seine subtypen selbst zusammen bauen
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
sid burn
 2007-05-23 12:47
#76799 #76799
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Unsigned.pm
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package Unsigned;
use strict;
use warnings;
use Scalar::Util qw( looks_like_number );
use Carp qw( croak );

sub TIESCALAR {
my ($class, $number) = @_;

my $self = bless \$number, $class;
$self->_check_number;

return $self;
}

sub _check_number {
my ($self, $number) = @_;

my $checkvalue = defined $number ? $number : $$self;
croak "Sie müssen eine Nummer eingeben" if not looks_like_number($checkvalue);
croak "Nur Positive Nummer erlaubt" if $checkvalue < 0;
}

sub FETCH { ${$_[0]} }
sub STORE {
my ($self, $newvalue) = @_;

$self->_check_number($newvalue);
$$self = $newvalue;
}

1;


Unsigned.pl
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
use strict;
use warnings;
use Unsigned;

tie my $wert, 'Unsigned', 10;
print $wert, "\n";

$wert = 100;
print $wert, "\n";

$wert = -100;
print $wert, "\n";

$wert = 'hallo';
print $wert, "\n";


Ausgabe:
Code: (dl )
1
2
3
10
100
Nur Positive Nummer erlaubt at ./Unsigned.pl line 12


Naja man kann etwas nachbauen wenn man es möchte. Ob sich der Aufwand lohnt, und tie dafür zu benutzen (5-6 mal langsamer als normale Variable zu benutzen) musst du selber abwiegen.

Allerdiengs wüsste ich jetzt auch nicht wofür ein expliziter Unsigned Wert Sinvoll wäre. Meistens reicht es doch aus "if ( $wert < 0 ) { ... }" zu schreiben?\n\n

<!--EDIT|sid burn|1179913032-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
PerlProfi
 2007-05-23 17:33
#76800 #76800
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
[quote=sid burn,23.05.2007, 10:47]Allerdiengs wüsste ich jetzt auch nicht wofür ein expliziter Unsigned Wert Sinvoll wäre.[/quote]
Ich sehe den Sinn nur in größeren Zahlen.
Und wenn du solche brauchst, kannst du ja bigint / bigfloat benutzen, wie Ronnie schon gesagt hat.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2007-05-20 23:59.