---
name: "VCP::Utils"
section: "3pm"
platform: "linux"
package: "libvcp-perl"
version: "0.9-20050110-1"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/VCP::Utils"
---

# VCP::Utils(3pm)

utilities used within VCP's modules.

## NAME

VCP::Utils - utilities used within VCP's modules.

## SYNOPSIS

```
   use VCP::Utils qw( shell_quote );
```

## DESCRIPTION

A mix-in class providing methods shared by VCP::Source::cvs and VCP::Dest::cvs, mostly wrappers for calling the cvs command.

## FUNCTIONS

- shell\_quote

  ```
     my $line = shell_quote \@command;
     my $line = shell_quote @command;
     print STDERR, $line, "\n";
  ```

  Selectively quotes the command line to allow it to be printed in a non-vague fashion and to be pastable in the local shell (sh/bash on Unix, COMMAND.COM, etc. on Win32 and OS2).

  NOTE: May not be perfect; errs on the side of safety and doesn't try to escape things right on Win32 yet.  Patches welcome.

- empty

  Determines if a scalar value is empty, that is not defined or zero length.

- escape\_filename

  Escape a string so that it may be used as a filename.  Converts characters other than "-", "\_", and alphanumerics to `%NN`% escape sequences where NN is the ordinal value (usually the ASCII value or UTF-8 codepoint) of the character.

- start\_dir\_rel2abs

  ```
     start_dir_rel2abs( $fn );
  ```

  If `$fn` is a relative path (according to File::Spec), converts it to an absolute path using *start\_dir()* as the base directory.

- start\_dir

  Returns the directory that was current when VCP::Utils was parsed.

- xchdir

  Changes to a directory (unless we're already in that directory) and logs the change.  Throws an exception on error.  Sets `$ENV`{PWD}.

  You should use minimal canonical paths where possible so that `$ENV`{PWD} is a simple path.  Some child processes might not like paths with thisdir ("/./") or updir segments ("/../").

  Relative paths are an error.

## COPYRIGHT

Copyright 2000, Perforce Software, Inc.  All Rights Reserved.

This module and the VCP package are licensed according to the terms given in the file LICENSE accompanying this distribution, a copy of which is included in vcp.
