source: for-distributions/trunk/bin/windows/perl/lib/abbrev.pl@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

File size: 838 bytes
Line 
1;# Usage:
2;# %foo = ();
3;# &abbrev(*foo,LIST);
4;# ...
5;# $long = $foo{$short};
6
7#
8# This library is no longer being maintained, and is included for backward
9# compatibility with Perl 4 programs which may require it.
10#
11# In particular, this should not be used as an example of modern Perl
12# programming techniques.
13#
14# Suggested alternative: Text::Abbrev
15#
16
17package abbrev;
18
19sub main'abbrev {
20 local(*domain) = @_;
21 shift(@_);
22 @cmp = @_;
23 local($[) = 0;
24 foreach $name (@_) {
25 @extra = split(//,$name);
26 $abbrev = shift(@extra);
27 $len = 1;
28 foreach $cmp (@cmp) {
29 next if $cmp eq $name;
30 while (@extra && substr($cmp,0,$len) eq $abbrev) {
31 $abbrev .= shift(@extra);
32 ++$len;
33 }
34 }
35 $domain{$abbrev} = $name;
36 while ($#extra >= 0) {
37 $abbrev .= shift(@extra);
38 $domain{$abbrev} = $name;
39 }
40 }
41}
42
431;
Note: See TracBrowser for help on using the repository browser.