| 1234567891011121314151617181920212223242526272829303132333435363738 |
- # Return associative array of fields from control file $file.
- sub slurp
- {
- local ($file) = @_;
- local (%controlinfo);
- local (%ci);
- open (CONTROL, $file) || return 1;
- # Get entire text of control file.
- undef $/; $* = 1; $_ = <CONTROL>;
- # Join lines.
- s/\n[ \t]+/ /g;
- # Split on fields.
- %controlinfo = ('PRESTUFF', split (/^(\S+):\s*/));
- $/ = "\n"; $* = 0;
- foreach $key (keys %controlinfo)
- {
- $key2 = $key; $key2 =~ y/A-Z/a-z/;
- chop ($controlinfo{$key}) if (/\n/);
- $ci{$key2} = $controlinfo{$key};
- }
- return %ci;
- }
- $file = "/var/lib/dpkg/methods/hd/hd.status";
- %info = slurp($file);
- open (IN, "<$info{'avail'}") || die "can't open $info{'avail'}";
- open (OUT, ">/var/lib/dpkg/available") || die "can't open /var/lib/dpkg/available";
- print OUT while (<IN>);
- close IN;
- close OUT;
|