add tests for version::is_strict() and version::is_lax()
[p5sagit/p5-mst-13.2.git] / lib / abbrev.pl
CommitLineData
a687059c 1;# Usage:
2;# %foo = ();
3;# &abbrev(*foo,LIST);
4;# ...
5;# $long = $foo{$short};
6
a6d71656 7#
8# This library is no longer being maintained, and is included for backward
9# compatibility with Perl 4 programs which may require it.
8670a613 10# This legacy library is deprecated and will be removed in a future
11# release of perl.
a6d71656 12#
13# In particular, this should not be used as an example of modern Perl
14# programming techniques.
15#
16# Suggested alternative: Text::Abbrev
17#
18
a687059c 19package abbrev;
20
21sub main'abbrev {
22 local(*domain) = @_;
23 shift(@_);
24 @cmp = @_;
449aadca 25 local($[) = 0;
a687059c 26 foreach $name (@_) {
27 @extra = split(//,$name);
28 $abbrev = shift(@extra);
29 $len = 1;
30 foreach $cmp (@cmp) {
31 next if $cmp eq $name;
55497cff 32 while (@extra && substr($cmp,0,$len) eq $abbrev) {
a687059c 33 $abbrev .= shift(@extra);
34 ++$len;
35 }
36 }
37 $domain{$abbrev} = $name;
38 while ($#extra >= 0) {
39 $abbrev .= shift(@extra);
40 $domain{$abbrev} = $name;
41 }
42 }
43}
44
451;