This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
UCD.pm: Convert num() to use new fcn
[perl5.git] / lib / shellwords.pl
index 168991f..b562f5f 100644 (file)
@@ -1,42 +1,19 @@
-#; shellwords.pl
-#;
-#; Usage:
-#;     require 'shellwords.pl';
-#;     @words = &shellwords($line);
-#;     or
-#;     @words = &shellwords(@lines);
-#;     or
-#;     @words = &shellwords;           # defaults to $_ (and clobbers it)
+warn "Legacy library @{[(caller(0))[6]]} will be removed from the Perl core distribution in the next major release. Please install it from the CPAN distribution Perl4::CoreLibs. It is being used at @{[(caller)[1]]}, line @{[(caller)[2]]}.\n";
 
-sub shellwords {
-    package shellwords;
-    local($_) = join('', @_) if @_;
-    local(@words,$snippet,$field);
+;# This legacy library is deprecated and will be removed in a future
+;# release of perl.
+;#
+;# shellwords.pl
+;#
+;# Usage:
+;#     require 'shellwords.pl';
+;#     @words = shellwords($line);
+;#     or
+;#     @words = shellwords(@lines);
+;#     or
+;#     @words = shellwords();          # defaults to $_ (and clobbers it)
+
+require Text::ParseWords;
+*shellwords = \&Text::ParseWords::old_shellwords;
 
-    s/^\s+//;
-    while ($_ ne '') {
-       $field = '';
-       for (;;) {
-           if (s/^"(([^"\\]+|\\[\\"])*)"//) {
-               ($snippet = $1) =~ s#\\(.)#$1#g;
-           }
-           elsif (s/^'(([^'\\]+|\\[\\'])*)'//) {
-               ($snippet = $1) =~ s#\\(.)#$1#g;
-           }
-           elsif (s/^\\(.)//) {
-               $snippet = $1;
-           }
-           elsif (s/^([^\s\\'"]+)//) {
-               $snippet = $1;
-           }
-           else {
-               s/^\s+//;
-               last;
-           }
-           $field .= $snippet;
-       }
-       push(@words, $field);
-    }
-    @words;
-}
 1;