For exercise 17, through searching other responses I was able to condense the following into one line (as asked in the extra credit #3)

```
from_file, to_file = ARGV
script = $0

input = File.open(from_file)
indata = input.read()

output = File.open(to_file, 'w')
output.write(indata)

output.close()
input.close()

```

I was able to condense it into:

```
from_file, to_file = ARGV
script = $0

File.open(to_file, 'w') {|f| f.write IO.read(from_file)}

```

1. Is there a better/different way to condense this into 1 line?
2. Can someone help explain the line I created? I created this from various questions/answers unrelated to this question. I have tried looking up exactly what I did but I am still a little lost and want a full understanding of it.