Commit | Line | Data |
8990e307 |
1 | Modules |
2 | POSIX (in progress) |
3 | X/Motif/Tk etc. |
4 | |
5 | Tie Modules |
6 | VecArray Implement array using vec() |
7 | SubstrArray Implement array using substr() |
8 | VirtualArray Implement array using a file |
9 | ShiftSplice Defines shift et al in terms of splice method |
93a17b20 |
10 | |
463ee0b2 |
11 | Bugs |
463ee0b2 |
12 | Make yyparse recursion longjmp() proof. |
ed6116ce |
13 | Make "delete $array{$key} while ($key) = each %array" safe |
8990e307 |
14 | Wrong line reported for runtime elsif condition error |
2304df62 |
15 | TOOSTRICT is not too strict |
16 | recv and sysread should taint |
79072805 |
17 | |
463ee0b2 |
18 | Regexp extensions |
19 | /m for multiline |
20 | /\Afoo/ (beginning of string, or where previous g match left off) |
21 | /foo\Z/ (end of string only) |
22 | negative regexp assertions? |
23 | /<>/x for grouping? |
24 | /f for fixed variable interpolation? |
25 | Rewrite regexp parser for better integrated optimization |
26 | |
8990e307 |
27 | Would be nice to have |
463ee0b2 |
28 | Profiler |
29 | pack "(stuff)*" |
30 | lexperl |
31 | Bundled perl preprocessor |
ed6116ce |
32 | Make $[ compile-time instead of run-time |
8990e307 |
33 | Use posix calls internally where possible |
34 | const variables |
35 | gettimeofday |
36 | bytecompiler |
37 | format BOTTOM |
38 | willcall() |
39 | -iprefix. |
2304df62 |
40 | -i rename file only when successfully changed |
8990e307 |
41 | All ARGV input should act like <> |
42 | Multiple levels of warning |
2304df62 |
43 | .= shouldn't complain about undefined under -w |
44 | report HANDLE [formats]. |
8990e307 |
45 | |
46 | Pragmas ("assume" maybe?) |
47 | integer, float |
48 | nodebug, debug |
49 | autocroak? |
463ee0b2 |
50 | |
51 | Optimizations |
463ee0b2 |
52 | Optimize switch statements |
53 | Optimize foreach on array |
54 | Optimize foreach (1..1000000) |
55 | Set KEEP on constant split |
56 | Cache eval tree (unless lexical outer scope used (mark in &compiling?)) |
57 | rcatmaybe |
58 | Shrink opcode tables via multiple implementations selected in peep |
59 | Cache hash value? |
ed6116ce |
60 | Optimize away @_ where possible |
463ee0b2 |
61 | sfio? |
8990e307 |
62 | "one pass" global destruction |
2304df62 |
63 | Optimize sort by { $a <=> $b } |
463ee0b2 |
64 | |
65 | Need to think more about |
8990e307 |
66 | ref function in list context |
ed6116ce |
67 | Populate %SIG at startup if appropriate |
463ee0b2 |
68 | |
69 | Vague possibilities |
70 | sub mysplice(@, $, $, ...) |
71 | data prettyprint function? (or is it, as I suspect, a lib routine?) |
72 | Nested destructors |
73 | make tr/// return histogram in list context? |
74 | undef wantarray in void context |
463ee0b2 |
75 | Loop control on do{} et al |
76 | Explicit switch statements |
77 | perl to C translator |
78 | multi-thread scheduling |
79 | built-in globbing |
80 | compile to real threaded code |
81 | structured types |
8990e307 |
82 | paren counting in tokener to queue remote expectations |