# LibTmux::Workspace::new

**Workspace Manager concept example** A working example of the core library. It can change without notice.

- **Module:** LibTmux
- **Package:** LibTmux-Workspace
- **Language:** Perl
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-perl/blob/352715a4fa66a96eed7763b90daaa536aa2f121d/packages/workspace/lib/LibTmux/Workspace.pm#L47
- **Page:** https://libtmux.org/en/perl/latest/workspace/reference/libtmux-workspace-new/

```
sub new($class, %args)
```

`new(config => $hashref)` validates and copies a `libtmux.workspace/v1` configuration. No I/O occurs. Sessions contain named windows with nonempty pane arrays. Each pane requires literal `command` arguments or an explicit `shell_command`. Environment values inherit from workspace, session, and window, with pane values taking precedence. All configuration errors throw [`Config`](/en/perl/latest/workspace/reference/libtmux-workspace-x-config/).

## Methods

## Parameters

- `args`

## In other ports

Describe a workspace as data

| Language | Equivalent |
| --- | --- |
| Python | tmuxp uses configuration dictionaries rather than a dedicated workspace value type |
| Ruby | [`LibTmux::Workspace`](/en/ruby/latest/workspace/reference/libtmux-workspace/) (class) |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | [`config.Workspace`](/en/ts/latest/workspace/reference/config-workspace/) (typealias) |
| Rust | [`config.Workspace`](/en/rs/latest/workspace/reference/config-workspace/) (struct) |
| Go | [`workspace.Workspace`](/en/go/latest/workspace/reference/workspace-workspace/) (struct) |
| Java | [`io.github.libtmux.workspace.Workspace`](/en/java/latest/workspace/reference/io-github-libtmux-workspace-workspace-workspace/) (class) |
| C# | [`LibTmux.Workspace.WorkspaceFile`](/en/csharp/latest/workspace/reference/libtmux-workspace-workspacefile/) (class) |
| C++ | [`libtmux::workspace::Workspace`](/en/cxx/latest/workspace/reference/libtmux-workspace-workspace/) (struct) |
| Swift | [`Workspace`](/en/swift/latest/workspace/reference/workspace/) (struct) |
| OCaml | [`Libtmux_workspace.Config.t`](/en/ocaml/latest/workspace/reference/libtmux_workspace-config-t/) (typealias) |

No equivalent is recorded in Lua, PowerShell, Julia, Erlang, Elixir, Common Lisp, Clojure, Kotlin, Scala or F#.
