File: pp_pack

package info (click to toggle)
perl 5.42.0-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 128,392 kB
  • sloc: perl: 534,963; ansic: 240,563; sh: 72,042; pascal: 6,934; xml: 2,428; yacc: 1,360; makefile: 1,197; cpp: 208; lisp: 1
file content (75 lines) | stat: -rw-r--r-- 1,841 bytes parent folder | download | duplicates (5)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
  pp.c	TODO

  Invalid type in unpack: '%c
	my $A = pack ("A,A", 1,2) ;
	my @A = unpack ("A,A", "22") ;

  Attempt to pack pointer to temporary value
	pack("p", "abc") ;

__END__
# pp_pack.c
use warnings 'pack' ;
use warnings 'unpack' ;
my @a = unpack ("A,A", "22") ;
my $a = pack ("A,A", 1,2) ;
no warnings 'pack' ;
no warnings 'unpack' ;
my @b = unpack ("A,A", "22") ;
my $b = pack ("A,A", 1,2) ;
EXPECT
Invalid type ',' in unpack at - line 4.
Invalid type ',' in pack at - line 5.
########
# pp_pack.c
use warnings 'pack' ;
sub foo { my $a = "a"; return $a . $a++ . $a++ }
my $a = pack("p", &foo) ;
@a = "foo";
sub bar { pop @{\@_}, pack "p", $a[0] } # This should *not* warn, even
bar(@a);                                # though $a[0] is SvTEMP.
no warnings 'pack' ;
my $b = pack("p", &foo) ;
EXPECT
Attempt to pack pointer to temporary value at - line 4.
########
# pp_pack.c
use warnings 'pack' ;
print unpack("C", pack("C",   -1)), "\n",
	unpack("C", pack("C",    0)), "\n",
	unpack("C", pack("C",  255)), "\n",
	unpack("C", pack("C",  256)), "\n",
	unpack("c", pack("c", -129)), "\n",
	unpack("c", pack("c", -128)), "\n",
	unpack("c", pack("c",  127)), "\n",
	unpack("c", pack("c",  128)), "\n";
no warnings 'pack' ;
print unpack("C", pack("C",   -1)), "\n";
print unpack("C", pack("C",    0)), "\n";
print unpack("C", pack("C",  255)), "\n";
print unpack("C", pack("C",  256)), "\n";
print unpack("c", pack("c", -129)), "\n";
print unpack("c", pack("c", -128)), "\n";
print unpack("c", pack("c",  127)), "\n";
print unpack("c", pack("c",  128)), "\n";
EXPECT
Character in 'C' format wrapped in pack at - line 3.
Character in 'C' format wrapped in pack at - line 3.
Character in 'c' format wrapped in pack at - line 3.
Character in 'c' format wrapped in pack at - line 3.
255
0
255
0
127
-128
127
-128
255
0
255
0
127
-128
127
-128