# About Dot Sourcing

Use `.` (dot sourcing) to include file. It will only be included in current scope. This means you cannot write a function to include a file, and use it outside this function. Because it only visible within the function instead of the callilng context.

What you can do is to use another `.` to open the function also.

```
# Get-Foo.ps1
function Get-Foo{
  write-host "getting foo"
}
```

```
function IncludingFile{
  . "./Get-Foo.ps1"
}
```

```
# call this function will do nothing
IncludingFile

# Get-Foo is still not visible here.
```

This is what you can do.

```
. IncludingFile

Get-Foo # is visible here.
```

The base directory of dot sourcing is `Get-Location`.
